Image, BitmapImage, WriteableBitmap, int[] 間の変換


環境: Windows Phone 7

// PhotoCamera –> BitmapImage –> WriteableBitmap –> int[] –> WriteableBitmap –> Image

// カメラのキャプチャーイベントから、BitmapImage を作成

BitmapImage bitmapImage = new BitmapImage();
void cam_CaptureImageAvailable(object sender, ContentReadyEventArgs e)
{
  ・・・
  bitmapImage.SetSource(e.ImageStream);
  ・・・

// BitmapImage から Imageへ

image.Source = bitmapImage;
         image.Width = bitmapImage.PixelWidth;
         image.Height = bitmapImage.PixelHeight;

// Bitmap から WriteableBitmap へ

BitmapImage bitmap =

var writableBitmap = new WriteableBitmap(bitmap);

// WriteableBitmap から int[] へ

int[] imageBuffer = writableBitmap.Pixcels;

// imageBuffer から WriteableBitmap へ

int[] imageBuffer;

WriteableBitmap writableBitmap = new WriteableBitmap(w, h);

Buffer.BlockCopy(imageBuffer, 0, writableBitmap.Pixels, 0, imageBuffer.Length * 4);

// WriteableBitmap から Imageへ

image.Source = writableBitmap;
image.Width = writableBitmap.PixelWidth;
image.Height = writableBitmap.PixelHeight;

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。