C#图片处理总结——叠加、缩放、鼠标拖动

这篇博客总结了使用C#进行图片处理的方法,包括如何实现图片的叠加(通过调整透明度),缩放(放大和缩小)以及在窗体中实现鼠标拖动图片的功能。在图片叠加中,通过设置颜色矩阵实现透明度控制;缩放部分展示了根据比例调整图片大小的代码;鼠标拖动部分则详细说明了如何捕捉鼠标移动事件并平移图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/////////////用到的命名空间////////////

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging; 

/////两张图片叠加,float fImage(0—1)透明度///////////////

 private void getMixImage(float fImage, string strFrontImage, string strBackImage)
        {
            this.m_image.Dispose();
            Bitmap background = new Bitmap(strBackImage);
            Bitmap frontImage = new Bitmap(strFrontImage);
            int iwidth = background.Width > frontImage.Width ? background.Width : frontImage.Width;
            int iheight = background.Height > frontImage.Height ? background.Height : frontImage.Height;
            Bitmap mixImage2 = new Bitmap(iwidth, iheight);
            //this.mixImage.Width = iwidth;
            //this.mixImage.Height = iheight;
            Graphics g = Graphics.FromImage(mixImage2);
            float[][] colormatrix ={
                                        new float[]{1,0,0,0,0},//代表了R
                                        new float[]{0,1,0,0,0},//代表了G
                                        new float[]{0,0,1,0,0},//代表了B
                                        new float[]{0,0,0,fImage,0},//代表了A
                                        new float[]{0,0,0,0,1}
            };
            ColorMatrix cm = new ColorMatrix(colormatrix);
            ImageAttributes imageAtt = new ImageAttributes();
            imageAtt.SetColorMatrix(cm, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
            g.DrawImage(background, new Point(0, 0));
            g.DrawImage(frontImage, new Rectangle(0, 0, frontImage.Width, frontImage.Height), 0, 0, frontImage.Width, frontImage.Height, GraphicsUnit.Pixel, imageAtt);
            this.pictureBox1.Image = mixImage2;
            this.pictureBox1.Update();
            this.m_ChangeSize = mixImage2;
        }

 

 //////////////图片的缩放//////

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值