728x90
728x170
■ Bitmap 클래스를 사용해 타겟의 너비 비율에 맞는 비트맵을 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
using System.Drawing;
using System.Drawing.Drawing2D;
#region 비트맵 구하기 - GetBitmap(sourceBitmap, targetWidth)
/// <summary>
/// 비트맵 구하기
/// </summary>
/// <param name="sourceBitmap">소스 비트맵</param>
/// <param name="targetWidth">타겟 너비</param>
/// <returns>비트맵</returns>
public Bitmap GetBitmap(Bitmap sourceBitmap, int targetWidth)
{
float ratio = 1.0f;
int maximumSide = sourceBitmap.Width > sourceBitmap.Height ? sourceBitmap.Width : sourceBitmap.Height;
ratio = (float)maximumSide / (float)targetWidth;
Bitmap targetBitmap =
(
sourceBitmap.Width > sourceBitmap.Height ?
new Bitmap(targetWidth, (int)(sourceBitmap.Height / ratio)) :
new Bitmap((int)(sourceBitmap.Width / ratio), targetWidth)
);
using(Graphics graphics = Graphics.FromImage(targetBitmap))
{
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.DrawImage
(
sourceBitmap,
new Rectangle(0, 0, targetBitmap.Width, targetBitmap.Height),
new Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height),
GraphicsUnit.Pixel
);
graphics.Flush();
}
return targetBitmap;
}
#endregion
728x90
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] Bitmap 클래스 : 회색조 비트맵 구하기 (0) | 2020.08.08 |
---|---|
[C#/WINFORM] Bitmap 클래스 : 투명 비트맵 구하기 (0) | 2020.08.08 |
[C#/WINFORM] Bitmap 클래스 : 32비트 ARGB 포맷 비트맵 구하기 (0) | 2020.08.08 |
[C#/WINFORM] Bitmap 클래스 : 중앙값 필터(Median Filter) 만들기 (0) | 2020.08.08 |
[C#/WINFORM] Bitmap 클래스 : 회선 필터(Convolution Filter) 만들기 (0) | 2020.08.08 |
[C#/WINFORM] 삼변 측량(trilateration) 하기 (0) | 2020.08.08 |
[C#/WINFORM] 원과 원 교차점 찾기 (0) | 2020.08.08 |
[C#/WINFORM] 타원형 호로 두 포인트 연결하기 (0) | 2020.08.07 |
[C#/WINFORM] 원의 중간점을 지나는 호 그리기 (0) | 2020.08.07 |
[C#/WINFORM] Graphics 클래스 : FillEllipse/DrawEllipse 메소드를 사용해 포인트 그리기 (0) | 2020.08.07 |