ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Image 関連メモ

Imageの変換

Imageからbyte[]への変換

ImageConverter imgconv = new ImageConverter();
byte[] b = (byte[])imgconv.ConvertTo(myThumbnail, typeof(byte[]));

byte[]へからImageへの変換

byte[] b ;
Image img;
using (var ms = new System.IO.MemoryStream(b)) {
    img = Image.FromStream(ms);
}

byte[]からBase64への変換

byte[] b ;
String base64 = Convert.ToBase64String(b);

サムネイル画像を生成する

// Callback指定、Delegateは使用できない模様
public bool ThumbnailCallback()
{
    return false;
}

public main() 
{
    Image img = new Image("c:\work\img1.jpg");

    Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    Image myThumbnail = img.GetThumbnailImage40, 40, myCallback, IntPtr.Zero);
}

イメージをWebページに表示する

public String ImageSrcBase64
{
    get
    {
        return Convert.ToBase64String(_b);
    }
}
<img src="data:image/jpeg;base64,<%=Html.DisplayFor(m => m.ImageSrcBase64) %>"

参考

https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.image.getthumbnailimage?view=dotnet-plat-ext-3.1

https://edge.sincar.jp/web/base64-inline-image/