Windows 10 Pro_x64 + VB2017 + Magick.NET を少し試してみる

Windows 10 Pro_x64 + VB2017 + Magick.NET を少し試してみる

 

ImageMagickを少し調べていたら The .NET library for ImageMagick があったのでちょっと試してみる

とりあえずは VB.Net でサンプル試しているんだけど C# で書いて最終的に

Monoを使ってC#をWebAssemblyにコンパイルするまでいけるかな?

※今のところDLL付はNGのようだ->mono-cs-webassembly

 

参考にしたのは以下のサイト(ドキュメントのサンプル)

Magick.NET/Documentation/

ファイルをバイト型配列に読み込む、バイト型配列をファイルに書き込む

Jpegファイルとメモリストリームの操作

ProgressBar et téléchargement d'un fichier [Résolu]

 

適当なイメージが無いので、こちら使用させもらう

製品情報天秤のLa DEA。戦女神MEMORIA のパケ絵(ロカでも良かったんだけどな)

 

Magick.NET-Q16-x86 7.4.5より

ツール

 -> NuGet パッケージマネージャー

  -> パッケージマネージャーコンソールを起動して

PM> Install-Package Magick.NET-Q16-x86

Reading images

から動く形に修正してみる(イメージ周りは久しぶりだなぁ・・)

まずはDeskTop環境なので MemoryStreamImage を使うサンプルの確認は後日かな

・PictureBoxを追加

・ボタンを適当に追加

Imports System.IO
Imports ImageMagick

    'PictureBoxに取込
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        PictureBox1.ImageLocation = "C:\Dev\code\vs2017\Vb0001\eudv015s.jpg"
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        ' Read from file
        Dim info As 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)
    End Sub

    ' Read from byte array.
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim bs As Byte() = System.IO.File.ReadAllBytes("C:\Dev\code\vs2017\Vb0001\eudv015s.jpg")
        Dim info = New MagickImageInfo(bs)
        ' Console.WriteLine は上記と同じ
    End Sub

    ' Read from stream
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Dim bs As Byte() = System.IO.File.ReadAllBytes("C:\Dev\code\vs2017\Vb0001\eudv015s.jpg")
        Dim ms As MemoryStream = New MemoryStream(bs)
        Dim info = New MagickImageInfo(ms)
        ' Console.WriteLine は上記と同じ
    End Sub