Windows 10 Pro_x64 + CS2017 + Magick.NET をもう少し試してみる
Windows 10 Pro_x64 + CS2017 + Magick.NET をもう少し試してみる
VB2017で少し試そうと思ったけど、CSの方がいろんなサンプルが多そうなんで切り替える
参考にしたのは以下のサイト(ドキュメントのサンプル)
Magick.NET/Documentation/
PictureBox Class
ファイルをバイト型配列に読み込む、バイト型配列をファイルに書き込む
Jpegファイルとメモリストリームの操作
Magick.NETを使って、.NETがサポートしていない形式の画像を読み込む
Overview of Ghostscript
Ghostscript Downloads
より gs923w32.exe をDLしてインストールする(Magick.NET が 32bit なので)
インストール先は C:\Dev\tool\gs\gs9.23
適当なイメージが無いので、こちら使用させもらう
製品情報天秤のLa DEA。戦女神MEMORIA のパケ絵(ロカでも良かったんだけどな)
Magick.NET-Q16-x86 7.4.5より
ツール
-> NuGet パッケージマネージャー
-> パッケージマネージャーコンソールを起動して
PM> Install-Package Magick.NET-Q16-x86
Reading images
Resize image
Convert PDF
・PictureBoxを追加
・ボタンを適当に追加
以下を追加
サンプルコード
using System.IO;
using ImageMagick;
・追加:サイズを変更して、pictureBox に表示する
・追加:PDFに変換する(要 Ghostscript)
バイナリを埋め込んで作ってるだけですが
※using 使うべきなんだけどなぁ・・・
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.ImageLocation = @"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg";
}private void button2_Click(object sender, EventArgs e)
{
MagickImageInfo info = new MagickImageInfo(@"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg");
Console.WriteLine(info.Width);
Console.WriteLine(info.Height);
Console.WriteLine(info.ColorSpace);
Console.WriteLine(info.Format);
Console.WriteLine(info.Density.X);
Console.WriteLine(info.Density.Y);
Console.WriteLine(info.Density.Units);
}private void button3_Click(object sender, EventArgs e)
{
Byte[] bs = System.IO.File.ReadAllBytes(@"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg");
MagickImageInfo info = new MagickImageInfo(bs);
// Console.WriteLine は上記と同じ
}private void button4_Click(object sender, EventArgs e)
{
Byte[] bs = System.IO.File.ReadAllBytes(@"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg");
MemoryStream ms = new MemoryStream(bs);
MagickImageInfo info = new MagickImageInfo(bs);
// Console.WriteLine は上記と同じ
}// メモリに取込んだイメージのサイズを2倍にする
private void button5_Click(object sender, EventArgs e)
{
Byte[] bs = System.IO.File.ReadAllBytes(@"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg");
MagickImage image = new MagickImage(bs);
MagickGeometry size = new MagickGeometry(image.Width * 2, image.Height * 2);
size.IgnoreAspectRatio = true;
image.Resize(size);
image.Format = ImageMagick.MagickFormat.Bmp;System.Drawing.Bitmap bmp = image.ToBitmap();
pictureBox1.Image = bmp;// Console.WriteLine は上記と同じ
}
// %PDF-1.3 に変更されるようだ
private void button6_Click(object sender, EventArgs e)
{
Byte[] bs = System.IO.File.ReadAllBytes(@"C:\Dev\code\vs2017\Vb0001\eudv015s.jpg");
MagickImage image = new MagickImage(bs);
image.Write(@"C:\Dev\code\vs2017\Vb0001\eudv015s.PDF");
}