Pergunta

Que ferramenta posso usar para converter um arquivo .ICO em um arquivo .PNG?

Foi útil?

Solução

Livre: @ícone sushi é muito bom para trabalhar com ícones:

Características

  • icon sushi pode converter arquivos de imagem em arquivos de ícone e vice-versa.
  • Suporte para ícones grandes do Windows Vista.(converter imagem grande com compactação PNG)
  • Suporte para ícones do Windows XP de 32 bits.
  • Suporte para múltiplos ícones que contém alguns ícones em um arquivo.
  • Edite o canal Alpha e a Máscara de Transparência.
  • Abra imagens de tamanho 1x1 a 256x256.
  • Abra imagens coloridas de 1/4/8/24/32 bits.
  • Abrir:ICO/BMP/PNG/PSD/EXE/DLL/ICL, converter em:ICO/BMP/PNG/ICL
  • Copiar para/Colar da área de transferência.

Outras dicas

O Google tem um conversor de ico para png, eu vi no reddit o outro dia.

http://www.google.com/s2/favicons?domain=stackoverflow.com

ImageMagick pode converter praticamente qualquer formato de imagem amplamente utilizado para outro.

http://www.imagemagick.org/script/index.php

ver http://www.imagemagick.org/script/convert.php em particular

Existem bindigs do ImageMagick para os idiomas mais populares.

Eu fiz assim em C# faz o trabalho muito bem

#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);
                }
            }
        }
    }
}
}

Observação:Isso foi gratuito quando essa pergunta foi feita, mas aparentemente é um aplicativo pago agora.@Sean Kearon deveria mudar a "resposta correta" agora.

Você pode usar IcoFX ($59)

É uma solução tudo-em-um para ícone criação, extração e edição.Ela foi projetado para funcionar com o Windows XP, Ícones do Windows Vista e Macintosh apoio à transparência.

ConvertICO.com sempre funcionou bem para mim.

Eu não sei onde eu estaria sem IrFanView.Fantástico para conversão em lote de imagens, incluindo ico para png.

No terminal do mac:

convert favicon.ico favicon.png

Caso alguém queira converter com Biblioteca de imagens Python (PIL) na memória a partir de um arquivo ou 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

Uma opção rápida é baixar Paint.net e instale o Plug-in de ícone/cursor.Você pode então abrir arquivos .ico com o Paint.net, editá-los e salvá-los em .png ou outro formato.

Para processamento em lote, apoio as sugestões do ImageMagick ou IrFanView.

http://converticon.com/ também é candidato.

Confira http://iconverticons.com/ - O iConvert permite que você converta facilmente ico do Windows em ícones do Mac OS X, SVG em ícones do Windows, ico PNG em ico do Mac OS X, imagens JPG em ícones do Windows e muito mais.

Aqui está um código C # para fazer isso, baseado muito na resposta deste tópico de "Peter".(Se você achar esta resposta útil, vote positivamente na resposta de Peter.)

  /// <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://stackoverflow.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 é um ótimo utilitário gráfico para Windows/Mac/Linux (gratuito) (página de download) que permitirá navegar por imagens, converter em lote, transformar, redimensionar, girar, fazer capturas de tela, etc.

Ele pode fazer o seu XYZ para ICO conversão onde XYZ é quase qualquer formato existente.

texto alternativo http://img443.imageshack.us/img443/672/convert.gif

http://www.gimp.org/

maneira gratuita e poderosa de fazer arquivos .ico de grande resolução 1024x1024 ou superior funcionarem com win7, pelo menos, eu testei isso :)

basta salvar e digitar .ico

:)

transparência é fácil, carregue uma nova imagem e selecione opções avançadas, cor de fundo->transparência

A versão do Paint que vem com o Windows 7 irá converter ícones para PNG, JPEG, etc...agora.

Acabei de me deparar com esse problema.Para sua informação, abra o .ico no Paint e salve como .png.Funcionou para mim!

http://convertico.org/ permite aos usuários converter vários arquivos ico em arquivos PNG, GIF ou JPG em uma única etapa.

Esta é provavelmente uma resposta um tanto boba, mas se você precisar apenas de um ícone, basta fazer uma captura de tela do ícone na pasta e cortar a parte desejada.Certifique-se de que o ícone esteja do tamanho desejado e tenha um fundo branco, é claro.

Se você estiver usando um aplicativo de captura de tela decente, como SnagIt ou WinSnap, um snap de região deve resolver isso em alguns segundos.

Observe que isso não lhe dará transparência.

Se você não está procurando algo programático, basta 'Imprimir tela' e recortar.

Existe uma ferramenta de conversão online disponível em http://www.html-kit.com/favicon/.Além de gerar o .ico também lhe dará uma animação .gif versão.

Conversão de ícone é outra ferramenta online com opção de redimensionamento.

Outra alternativa seria IrfanView

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top