위와 같이 PictureBox의 이미지를 투명하게 만드는 코드이다.
1. 불러올 파일의 경로의 Image 개체를 생성
2. ChangeOpacity 메서드를 통해 이미지의 알파값을 변경하여 새로운 비트맵 개체 생성
3. 생성한 비트맵 개체를 PictureBox Image 속성으로 설정
4. 생성한 Image 개체 제거
public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void btnLoad_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog();
if (of.ShowDialog() == DialogResult.OK) { try { this.SetImage(of.FileName); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private void SetImage(string fileName) { try { Image img = Image.FromFile(fileName); this.pictureBox1.Image = ChangeOpacity(img, 0.5f); img.Dispose(); } catch (Exception ex) { throw ex; } }
/// <summary> /// 해당 이미지의 투명도를 변경한다. /// </summary> /// <param name="img"></param> /// <param name="opacityvalue"></param> /// <returns></returns> public Bitmap ChangeOpacity(Image img, float opacityvalue) { Bitmap bmp = new Bitmap(img.Width, img.Height); Graphics graphics = Graphics.FromImage(bmp); ColorMatrix colormatrix = new ColorMatrix(); colormatrix.Matrix33 = opacityvalue; ImageAttributes imgAttribute = new ImageAttributes(); imgAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); graphics.DrawImage(img, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, imgAttribute); graphics.Dispose(); return bmp; } }
|
vs2015 프로젝트 : PictureBox투명도.zip
출처 : https://raviranjankr.wordpress.com/2011/05/25/change-opacity-of-image-in-c/
'.Net > Winform' 카테고리의 다른 글
C# Winform PitureBox위에 선 그리기 (4) | 2016.06.01 |
---|---|
C# Visual Studio와 같은 컨트롤 배치 컨트롤 (2) | 2015.07.10 |
C# Winform 멀티 UI 쓰레드 (0) | 2015.05.06 |
C# DataGridView 콤보박스 클릭시 리스트 보여지게 하기 (0) | 2014.10.31 |
C# Excel 2007 추가기능 - 엑셀 Cell의 스크린 위치 구하기 (0) | 2014.08.22 |