[WPF] 이미지 불러오기

이미지 로드

이미지 파일 경로를 통해 이미지를 로드합니다.

1
2
3
4
5
6
7
8
9
using System.Drawing.Imaging;

public Bitmap LoadImage(string path)
{
using (Bitmap bitmap = new Bitmap(path))
{
return bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), PixelFormat.Format32bppArgb);
}
}

BitmapSource 변환

주어진 비트맵을 WPF 이미징 프레임워크에서 사용 가능한 BitmapSource 형식으로 변환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Drawing.Imaging;
using System.Windows;
using System.Windows.Media.Imaging;

public BitmapSource ConvertGDIBitmapToWPF(Bitmap image)
{
if (image == null)
return null;

Rectangle rect = new Rectangle(0, 0, image.Width, image.Height);
BitmapData bitmapData = image.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

try
{
int size = rect.Width * rect.Height * 4;
BitmapSource result = BitmapSource.Create(image.Width, image.Height,
image.HorizontalResolution, image.VerticalResolution, PixelFormats.Bgra32,
null, bitmapData.Scan0, size, bitmapData.Stride);
result.Freeze();
return result;
}
finally
{
image.UnlockBits(bitmapData);
}
}

빈 비트맵 생성

주어진 크기를 갖는 빈 비트맵을 생성합니다.

1
2
3
4
5
6
using System.Drawing.Imaging;

public Bitmap MakeEmptyImage(int width, int height)
{
return new Bitmap(width, height, PixelFormat.Format32bppArgb);
}
Share