728x90
반응형
728x170
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
#region 투명 비트맵 구하기 - GetTransparentBitmap(sourceImage, alpha)
/// <summary>
/// 투명 비트맵 구하기
/// </summary>
/// <param name="sourceImage">소스 이미지</param>
/// <param name="alpha">알파</param>
/// <returns>투명 비트맵</returns>
public Bitmap GetTransparentBitmap(Image sourceImage, byte alpha = 100)
{
Bitmap targetBitmap = GetBitmap(sourceImage);
BitmapData targetBitmapData = targetBitmap.LockBits
(
new Rectangle(0, 0, sourceImage.Width, sourceImage.Height),
ImageLockMode.ReadOnly,
PixelFormat.Format32bppArgb
);
IntPtr sourceHandle = targetBitmapData.Scan0;
byte[] targetByteArray = new byte[targetBitmapData.Stride * targetBitmap.Height];
Marshal.Copy(sourceHandle, targetByteArray, 0, targetByteArray.Length);
for(int i = 3; i < targetByteArray.Length; i += 4)
{
targetByteArray[i] = alpha;
}
Marshal.Copy(targetByteArray, 0, sourceHandle, targetByteArray.Length);
targetBitmap.UnlockBits(targetBitmapData);
targetBitmapData = null;
targetByteArray = null;
return targetBitmap;
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] Bitmap 클래스 : 카툰 필터(Cartoon Filter) 사용하기 (0) | 2021.01.09 |
---|---|
[C#/WINFORM] Bitmap 클래스 : 스무딩 필터(Smoothing Filter) 사용하기 (0) | 2021.01.09 |
[C#/WINFORM] Bitmap 클래스 : 선명 가장자리 탐지 필터(Sharpen Edge Detection Filter) 사용하기 (0) | 2021.01.09 |
[C#/WINFORM] 가우시안 커널(Gaussian Kernel) 계산하기 (0) | 2021.01.09 |
[C#/WINFORM] Bitmap 클래스 : 회색조 비트맵 구하기 (0) | 2021.01.08 |
[C#/WINFORM] Bitmap 클래스 : 불선명 필터(Blur Filter) 사용하기 (0) | 2021.01.08 |
[C#/WINFORM] Bitmap 클래스 : 비트맵 회전하기 (0) | 2021.01.08 |
[C#/WINFORM] Bitmap 클래스 : 비트맵 자르기(Shear) (0) | 2021.01.08 |
[C#/WINFORM] Bitmap 클래스 : 컴파스 가장자리 탐지 필터(Compass Edge Detection Filter) 사용하기 (0) | 2021.01.04 |
[C#/WINFORM] Bitmap 클래스 : 스테인 글라스 필터(Stained Glass Filter) 사용하기 (0) | 2021.01.04 |
댓글을 달아 주세요