[Graphics] Come convertire .ICO in .PNG?



Answers

Google ha un convertitore da ico a png, l'ho visto su reddit l'altro giorno.

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

Question

Che strumenti posso utilizzare per convertire un file .ICO in un file .PNG?




Nel caso in cui qualcuno voglia convertire con Python Imaging Library (PIL) in memoria da un file o da un 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






Nel terminale su mac:

convert favicon.ico favicon.png



Se non stai cercando qualcosa di programmatico, basta "Stampa schermo" e ritaglia.




Dai un'occhiata a http://iconverticons.com/ - iConvert ti consente di convertire facilmente Windows ico in ics di Mac OS X, icone SVG in Windows, PNI ico in Mac OS X ico, immagini JPG in icone di Windows e molto altro.




La versione di Paint fornita con Windows 7 convertirà le icone in PNG, JPEG, ecc ... ora.




Icon Convert è un altro strumento online con l'opzione di ridimensionamento.




http://convertico.org/ consente agli utenti di convertire più file ico in file PNG, GIF o JPG in un unico passaggio.







L'ho fatto in questo modo in C # fa bene il lavoro

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





Links