Как конфертировать.ICO в.PNG?
Какой инструмент можно использовать для преобразования файла.ICO в файл.PNG?
23 ответа
Бесплатно: @icon sushi отлично подходит для работы с иконками:
Характеристики
- Иконка суши может конвертировать файлы изображений в файлы иконок и наоборот.
- Поддержка Windows Vista больших иконок. (конвертировать большое изображение в формате PNG)
- Поддержка Windows XP 32-битных иконок.
- Поддержка Multiple-Icon, которая содержит несколько значков в файле.
- Отредактируйте альфа-канал и маску прозрачности.
- Откройте изображения размером от 1x1 до 256x256.
- Откройте 1/4/8/24/32bit цветных изображений.
- Открыть: ICO/BMP/PNG/PSD/EXE/DLL/ICL, конвертировать в: ICO/BMP/PNG/ICL
- Копировать в / Вставить из буфера обмена.
У Google есть конвертер ico в png, я видел его на Reddit на днях.
ImageMagick может конвертировать практически любой широко используемый формат изображения в другой.
http://www.imagemagick.org/script/index.php
см. http://www.imagemagick.org/script/convert.php в частности
Существуют привязки ImageMagick для большинства популярных языков.
Я сделал это таким образом в C# делает работу хорошо
#region Usings
using System;
using System.IO;
using System.Linq;
// Next namespace requires a reference to PresentationCore
using System.Windows.Media.Imaging;
#endregion
namespace Imagetool
{
internal class Program
{
private static void Main(string[] args)
{
new Ico2Png().Run(@"C:\Icons\",
@"C:\Icons\out\");
}
}
public class Ico2Png
{
public void Run(string inPath, string outPath)
{
if (!Directory.Exists(inPath))
{
throw new Exception("In Path does not exist");
}
if (!Directory.Exists(outPath))
{
Directory.CreateDirectory(outPath);
}
var files = Directory.GetFiles(inPath, "*.ico");
foreach (var filepath in files.Take(10))
{
Stream iconStream = new FileStream(filepath, FileMode.Open);
var decoder = new IconBitmapDecoder(
iconStream,
BitmapCreateOptions.PreservePixelFormat,
BitmapCacheOption.None);
var fileName = Path.GetFileName(filepath);
// loop through images inside the file
foreach (var frame in decoder.Frames)
{
// save file as PNG
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(frame);
var size = frame.PixelHeight;
// haven't tested the next lines - include them for bitdepth
// See RenniePet's answer for details
// var depth = frame.Thumbnail.Format.BitsPerPixel;
// var path = outPath + fileName + size + depth +".png";
var path = outPath + fileName + size + ".png";
using (Stream saveStream = new FileStream(path, FileMode.Create))
{
encoder.Save(saveStream);
}
}
}
}
}
}
Примечание: это было бесплатно, когда был задан этот вопрос, но, очевидно, сейчас это платное приложение. @Sean Kearon должен изменить "правильный ответ" сейчас.
Вы можете использовать IcoFX ($ 59)
Это универсальное решение для создания, извлечения и редактирования иконок. Он предназначен для работы с иконками Windows XP, Windows Vista и Macintosh, поддерживающими прозрачность.
Я не знаю, где бы я был без IrFanView. Фантастический для пакетного преобразования изображений, в том числе ICO в PNG.
Одним из быстрых вариантов является загрузка Paint.net и установка плагина Icon/Cursor. Затем вы можете открыть.ico файлы с помощью Paint.net, отредактировать их и сохранить в формате.png или другом формате.
Для пакетной обработки я поддерживаю предложения ImageMagick или IrFanView.
Если кто-то захочет конвертировать с Python Imaging Library (PIL) в память из файла или URL
from cStringIO import StringIO
import Image
import urllib
def to_png(path, mime="png"):
if path.startswith("http:"):
url = urllib.quote(url)
input = StringIO()
input.write(urllib.urlopen(url).read())
input.seek(0)
else:
input = open(path).read()
if input:
out = StringIO()
image = Image.open(input)
image.save(out, mime.upper())
return out.getvalue()
else:
return None
Проверьте http://iconverticons.com/ - iConvert позволяет вам легко конвертировать Windows ico в Mac OS X icns, SVG в иконки Windows, PNG ico в Mac OS X ico, JPG изображения в иконки Windows и многое другое.
Вот некоторый код C# для этого, в значительной степени основанный на ответе "Питера" на эту тему. (Если вы найдете этот ответ полезным, пожалуйста, проголосуйте за ответ Питера.)
/// <summary>
/// Method to extract all of the images in an ICO file as a set of PNG files. The extracted
/// images are written to the same disk folder as the input file, with extended filenames
/// indicating the size of the image (16x16, 32x32, etc.) and the bit depth of the original
/// image (typically 32, but may be 8 or 4 for some images in old ICO files, or even in new
/// ICO files that are intended to be usable in very old Windows systems). But note that the
/// PNG files themselves always have bit depth 32 - the bit depth indication only refers to
/// the source image that the PNG was created from. Note also that there seems to be a bug
/// that makes images larger than 48 x 48 and with color depth less than 32 non-functional.
///
/// This code is very much based on the answer by "Peter" on this thread:
/// http://stackru.com/questions/37590/how-to-convert-ico-to-png
///
/// Plus information about how to get the color depth of the "frames" in the icon found here:
/// http://social.msdn.microsoft.com/Forums/en-US/e46a9ad8-d65e-4aad-92c0-04d57d415065/a-bug-that-renders-iconbitmapdecoder-useless
/// </summary>
/// <param name="iconFileName">full path and filename of the ICO file</param>
private static void ExtractImagesFromIconFile(string iconFileName)
{
try
{
using (Stream iconStream = new FileStream(iconFileName, FileMode.Open))
{
IconBitmapDecoder bitmapDecoder = new IconBitmapDecoder(iconStream,
BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None);
foreach (BitmapFrame bitmapFrame in bitmapDecoder.Frames)
{
int iconSize = bitmapFrame.PixelHeight;
int bitDepth = bitmapFrame.Thumbnail.Format.BitsPerPixel;
string pngFileName = Path.GetDirectoryName(iconFileName) +
Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(iconFileName) + "-" +
iconSize + "x" + iconSize + "-" + bitDepth + ".png";
using (Stream saveStream = new FileStream(pngFileName, FileMode.Create))
{
BitmapEncoder bitmapEncoder = new PngBitmapEncoder();
bitmapEncoder.Frames.Add(bitmapFrame);
bitmapEncoder.Save(saveStream);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Unable to extract PNGs from ICO file: " + ex.Message,
"ExtractImagesFromIconFile", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
XnView - отличная графическая утилита для Windows/Mac/Linux (бесплатная) ( страница загрузки), которая позволит вам просматривать изображения, конвертировать, преобразовывать, изменять размер, вращать, делать скриншоты и т. Д.
Это может сделать ваше XYZ
в ICO
преобразование, где XYZ практически любой формат под солнцем.
бесплатный и мощный способ заставить файлы.ico с большим разрешением 1024x1024 или выше работать, по крайней мере, с win7, я проверял это:)
просто сохраните и введите.ico
:)
Прозрачность проста, загрузите новое изображение и выберите дополнительные параметры, цвет фона-> прозрачность
Версия Paint, которая поставляется с Windows 7, теперь преобразует значки в PNG, JPEG и т. Д.
Я только столкнулся с этой проблемой. К вашему сведению, откройте файл.ico краской и сохраните как.png. Работал на меня!
Это, вероятно, довольно глупый ответ, но если вам нужен только один значок, вы можете просто сделать снимок экрана значка в папке и выделить нужную часть. Убедитесь, что значок показывает нужный вам размер и имеет белый фон, конечно.
Если вы используете приличное приложение для скриншотов, такое как SnagIt или WinSnap, привязка к региону должна позаботиться об этом в течение нескольких секунд.
Обратите внимание, что это не даст вам прозрачности.
http://convertico.org/ позволяет пользователям конвертировать несколько файлов ico в файлы PNG, GIF или JPG за один шаг.
Icon Convert - это еще один онлайн-инструмент с возможностью изменения размера.
Если вы не ищете что-то программное, просто "Print Screen" и обрезать.
На сайте http://www.html-kit.com/favicon/ доступен инструмент онлайн-конвертации. В дополнение к генерации .ico
это также даст вам анимированный .gif
версия.