新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

gs で png 出力

gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -sOutputFile="o.png" screen4.eps

gs で DEVICE を pngalpha にすると png 出力になることがわかった。png256 とかもあるのか。
http://ghostscript.com/doc/current/Devices.htm
なんだ tiff もできるじゃん。

ということで、これで scheme で eps を書いて(postscheme を使用。よく考えたら postscheme って違う意味になるなぁ) eps を gs で変換して pngtiff に落とすことができる。ついでだから、Windowsクリップボードデータも png に落とすようにする。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;

namespace clipimage
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            string out_file;
            bool flag = false;

            if (args.Length == 1)
            {
                out_file = args[0];
            }
            else
            {
                out_file = "image.png";
            }

            if (Clipboard.ContainsImage())
            {
                Image img = Clipboard.GetImage();
                if (img != null)
                {
                    img.Save(out_file);
                    flag = true;
                }
            }
            if (!flag)
            {
                Console.WriteLine("No Image Clip");
            }

        }
    }
}