본문 바로가기
소프트웨어 개발(SW Dev)/C#

이미지 투명도 변경(Change Opacity)

by flowhistory 2020. 12. 3.

이미지의 투명도를 변경하는 로직

 

   private Bitmap ChangeOpacity(Image imgData, float fOpacityvalue)
   {
       // imgData : 투명화 처리할 이미지 데이터
       // fOpacityvalue : 투명도
       // 이미지 데이터를 기반으로 Bitmap 생성
        Bitmap bmpTmp = new Bitmap(imgData.Width, imgData.Height);

        Graphics gp = Graphics.FromImage(bmpTmp);
        ColorMatrix clrMatrix = new ColorMatrix();
        // 투명도 설정
        clrMatrix.Matrix33 = fOpacityvalue;
        ImageAttributes imgAttribute = new ImageAttributes();
        imgAttribute.SetColorMatrix(clrMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

        gp.DrawImage(imgData, new Rectangle(0, 0, bmpTmp.Width, bmpTmp.Height), 0, 0, imgData.Width, imgData.Height, GraphicsUnit.Pixel, imgAttribute);
        gp.Dispose();

        return bmpTmp;
   } // end private Bitmap ChangeOpacity(Image imgData, float fOpacityvalue)


   // 예시
   pictureBox.Image = ChangeOpacity(img, 0.3f);
728x90

댓글