本記事では、OpenNETCFのSmart Device Frameworkを使って、簡単な画像処理をおこなう方法をご紹介しています。処理後の画像をピクチャーボックスに表示させています。
以下のサンプルコードでは、OpenNETCF.Drawing.dllが参照に追加されていることを前提としております。Smart Device Frameworkの導入方法については、こちらのページをご覧ください。
ここで紹介している画像処理は、OpenNETCFを使って画像を回転させたり、.NET Compact Frameworkでは実装されていないサムネイル画像を生成する方法です。
** ピクチャーボックスへの画像の設定
ピクチャーボックスへ画像を表示するための基本の処理です。次の画像は実行例です。
***C#
|cs| private void OpenMenuItem_Click(System.Object sender, System.EventArgs e) { // 画像のファイルパス string ImageFilePath = "\20090622093526.jpg";
// ピクチャーボックスに画像を設定する
PictureBox1.Image = new Bitmap(ImageFilePath);
} ||<
***VB.NET
|vb| Private Sub OpenMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles OpenMenuItem.Click
' 表示する画像を選択する
Dim ImageFilePath As String = "\20090622093526.jpg"
' ピクチャーボックスに画像を設定する
PictureBox1.Image = New Bitmap(ImageFilePath)
End Sub ||<
** 画像の回転処理
すでにピクチャーボックスに設定されている画像を時計回りに90度回転させます。次の画像は実行例です。
***C#
|cs| private void RightRotateMenuItem_Click(System.Object sender, System.EventArgs e) { if(PictureBox1.Image == null) return;
// 画像のファイルパス
string ImageFilePath = "\\20090622093526.jpg";
Bitmap srcBmp = New Bitmap(ImageFilePath);
// 現在表示している画像を90度回転する
OpenNETCF.Drawing.RotationAngle rotate
= OpenNETCF.Drawing.RotationAngle.Clockwise90;
Bitmap RotatedBitmap
= OpenNETCF.Drawing.Imaging.ImageUtils.Rotate(
(Bitmap)PictureBox1.Image, rotate);
// ピクチャーボックスに画像を設定する
PictureBox1.Image = RotatedBitmap;
} ||<
***VB.NET
|vb| ' 画像を右回転させる Private Sub RightRotateMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs)
If (PictureBox1.Image Is Nothing) Then
Return
End If
' 現在表示している画像を90度回転する
Dim rotate As OpenNETCF.Drawing.RotationAngle = _
OpenNETCF.Drawing.RotationAngle.Clockwise90
Dim RotatedBitmap As Bitmap = _
OpenNETCF.Drawing.Imaging.ImageUtils.Rotate( _
CType(PictureBox1.Image, Bitmap), rotate)
' ピクチャーボックスに画像を設定する
PictureBox1.Image = RotatedBitmap
End Sub ||<
**サムネイル画像の生成
サムネイル画像の生成を行います。次の画像は実行例です。
***C#
|cs| private void CreateThumMenuItem_Click(System.Object sender, System.EventArgs e) { // 表示する画像を選択する string ImageFilePath = "\20090622093526.jpg";
// 画像のファイルパス
System.IO.FileStream fs =
new System.IO.FileStream(ImageFilePath, IO.FileMode.Open);
Size newSize = PictureBox1.Size;
newSize.Width /= 2;
newSize.Height /= 2;
OpenNETCF.Drawing.Imaging.IBitmapImage bi = null;
bi = OpenNETCF.Drawing.Imaging.ImageUtils.CreateThumbnail(fs, newSize);
// ピクチャーボックスに画像を設定する
PictureBox1.Image =
OpenNETCF.Drawing.Imaging.ImageUtils.IBitmapImageToBitmap(bi);
}
||<
***VB.NET
|vb| Private Sub CreateThumMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs)
' 表示する画像を選択する
Dim ImageFilePath As String = "\20090622093526.jpg"
' 画像のファイルパス
Dim fs As New System.IO.FileStream(ImageFilePath, IO.FileMode.Open)
Dim newSize As Size = PictureBox1.Size
With newSize
.Width /= 2
.Height /= 2
End With
Dim bi As OpenNETCF.Drawing.Imaging.IBitmapImage = Nothing
bi = OpenNETCF.Drawing.Imaging.ImageUtils.CreateThumbnail( _
fs, newSize)
' ピクチャーボックスに画像を設定する
PictureBox1.Image = _
OpenNETCF.Drawing.Imaging.ImageUtils.IBitmapImageToBitmap(bi)
End Sub ||<
OpenNETCF Smart Device Frameworkの導入に関しては、「Windows MobileアプリにOpenNETCF Smart Device Frameworkを導入する - 酢ろぐ!」をお読みください。