添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
挂过科的太阳  ·  postgresql ...·  7 月前    · 
强健的吐司  ·  Android--UI之ProgressBa ...·  1 年前    · 
/// /// public static unsafe Rectangle GetRectangle(Bitmap bckImage) int w = bckImage.Width;//原宽 int h = bckImage.Height;//原高 //x:原图左侧到非透明范围左侧的长度 //y:原图头部到非透明范围头部的高度 //width:裁剪后图片宽度 //height:裁剪后图片高度 int x = 0,y=0 ,width = 0,height=0; BitmapData bckdata = null; bckdata = bckImage.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); uint* bckInt = (uint*)bckdata.Scan0; for (int j = 0; j < h; j++) for (int i = 0; i < w; i++) if ((*bckInt & 0xff000000) != 0) if (x == 0 || i < x) x = i; if (y == 0 || j < y) y = j; if (width == 0 || i > width) width = i; if (height == 0 || j > height) height = j; bckInt++; bckImage.UnlockBits(bckdata); bckdata = null; catch if (bckdata != null) bckImage.UnlockBits(bckdata); bckdata = null; int border = 20;//边框大小 if (x > border) { x -= border; if (y > border) y -= border; if ((w-width)> border) width += border; if ((h-height)> border) height += border; return new Rectangle(x,y, width - x,height-y);

2.裁剪透明部分

        /// <summary>
        /// 裁剪PNG图片透明部分
        /// </summary>
        /// <param name="filepath"></param>
        public static void ClipPng(string filepath)
            FileInfo fileInfo = new FileInfo(filepath);
            Bitmap bitmap = new Bitmap(filepath);
            Rectangle rectangle = GetRectangle(bitmap);
            Bitmap bakBitmap = bitmap.Clone(rectangle, bitmap.PixelFormat);
            string bakFilePath = $@"{fileInfo.Directory}\{fileInfo.Name}-bak.{fileInfo.Extension}";
            bakBitmap.Save(bakFilePath, ImageFormat.Png);
            bitmap.Dispose();
            fileInfo.Delete();
            fileInfo = new FileInfo(bakFilePath);
            fileInfo.CopyTo(filepath);
                    C# 获取png图片的非透明部分范围 并裁剪掉透明部分1.获取png非透明部分范围        /// &lt;summary&gt;        /// 根据图片得到一个图片非透明部分的矩形范围        /// &lt;/summary&gt;        /// &lt;param name="bckImage"&gt;&lt;/param&gt;        /// &lt;returns&gt;&lt;/returns&gt;        publ..
				
常见的按钮或窗体都是四四方方的矩形,默认创建产生的window窗体都是矩形的。但矩形窗体在Windows系统中同样很常见,比如Windows Media Player中控制按钮等等。 规则窗体的制作关键是要得到一个表示这个不规则区域的数据结构,MFC里由CRgn类来表示。要通过图片获得按钮区域,只需要检测相关的点生成这个类的实例即可。
private void btnSavePng_Click(object sender, EventArgs e) // cat.png feather.png Format32bppArgb string strOldFilePath = @"D:\icon\colorpen.jpg";
Rectangle rectangle = new Rectangle(10,20,30,40);Image&lt;Gray, byte&gt; Sub = Image.GetSubRect(rectangle); Image&lt;Gray, byte&gt; CropImage = new Image&lt;Gray, byte&gt;(Sub.Size); CvInvoke.cvCopy(S...
Grahpics类里的CopyFromScreen函数,可以把屏幕拷贝到Graphics对象里。如果Graphics对象是从窗口Form里创建的,那么屏幕就直接 显示在窗口里。看例子:给窗口添加一个按钮,然后给这个按钮添加单击事件处理函数。 函数里的代码如下: private void button1_Click(object sender, EventArgs e)
原文:Png图片透明部分穿透测试        private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mouseP = e.GetPosition(this); Vis...
Bitmap targetBitmap = new Bitmap(bitmap.Width, bitmap.Height); // 设置Graphics对象的CompositingMode为SourceOver以支持透明度 using (Graphics graphics = Graphics.FromImage(targetBitmap)) graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; // 设置透明度(0为完全透明,255为不透明) float opacity = 0.5f; // 创建颜色矩阵并设置透明度 ColorMatrix colorMatrix = new ColorMatrix(); colorMatrix.Matrix33 = opacity; // 创建颜色矩阵属性 ImageAttributes imageAttributes = new ImageAttributes(); imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); // 绘制具有透明度的PNG图片到目标Bitmap上 graphics.DrawImage(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, imageAttributes); // 保存目标Bitmap为图片文件 targetBitmap.Save("path_to_output_file.png"); Console.WriteLine("半透明PNG图片绘制完成。"); 在这个示例中,你需要将 `"path_to_png_file.png"` 替换为你实际的PNG图片路径。首先,创建一个源Bitmap对象并加载PNG图片。然后,创建一个目标Bitmap对象,它具有与源Bitmap相同的尺寸。 通过设置Graphics对象的CompositingMode属性为SourceOver,我们启用了透明度支持。然后,我们通过创建一个ColorMatrix对象,并将其第三行的值设置为所需的透明度来设置透明度。接下来,我们创建了一个ImageAttributes对象,并使用SetColorMatrix方法将ColorMatrix应用于图像。 最后,使用Graphics对象的DrawImage方法将具有透明度的PNG图片绘制到目标Bitmap上,并保存目标Bitmap为图片文件。 请确保提供的PNG图片具有透明度(即图片中的某些区域透明的),以便在绘制时产生半透明效果。
wangwky: 我也碰到同样的问题,不过暂时没找到解决办法就找到这样一篇相关的文章https://blog.csdn.net/zyh568902364/article/details/80590695 我打算改为前端把查到的时间返回后端后端处理再把下载地址返回到前端