zoukankan      html  css  js  c++  java
  • 图片转成透明底

    string sp = Server.MapPath("/");//"/PDF/tz/tempword/"
                if (!System.IO.Directory.Exists(sp))
                {
                    System.IO.Directory.CreateDirectory(sp);
                }
                //Request.Files[0].SaveAs(path);
    
                ImageAttributes vAttr = new ImageAttributes(); //vAttr是关键
    
                //图像中与0,0那点相同的颜色要变成透明
    
                Bitmap bitmap = new Bitmap(Request.Files[0].InputStream);
                Bitmap bitmappng = new Bitmap(165, 165);//新生成的图片宽与高
                vAttr.SetColorKey(bitmap.GetPixel(0, 0), bitmap.GetPixel(0, 0));
                Graphics g = Graphics.FromImage(bitmappng);
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(bitmap, new Rectangle(10, 10, 165, 165), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, vAttr);
                g.Save();
                g.Dispose();
                bitmappng.Save(sp + "png.png", ImageFormat.Png);
    ImageAttributes vAttr = new ImageAttributes(); //vAttr是关键
    
            //图像中与0,0那点相同的颜色要变成透明
    
            Bitmap bitmap = new Bitmap(Request.Files[0].InputStream);
            Bitmap bitmappng = new Bitmap(165, 165);
            bitmap.SetPixel(0, 0, Color.FromArgb(0, 0, 0));//设置为统一颜色
    
            /*将图片的背景只留下红色*/
            for (int i = 0; i < bitmap.Width; i++)
            {
                for (int j = 0; j < bitmap.Height; j++)
                {
                    System.Drawing.Color c = bitmap.GetPixel(i, j);
                    /*找到红色的RGB范围,然后再进行替换*/
                    if (c.R > 128 && (c.R > c.G + 20 && c.R > c.B + 20))  /*非红色要替换成透明 每种颜色要存在一定的差距*/
                    {
                        //bitmappng.SetPixel(i, j, System.Drawing.Color.Transparent);
                        //bitmap.SetPixel(i, j, Color.FromArgb(0,c.R, c.G, c.B));//设置为统一颜色
                    }
                    else
                    {
                        bitmap.SetPixel(i, j, Color.FromArgb(0, 0, 0, 0));//设置为统一颜色
                    }
                }
            }
            vAttr.SetColorKey(bitmap.GetPixel(0, 0), bitmap.GetPixel(0, 0));
            Graphics g = Graphics.FromImage(bitmappng);
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.DrawImage(bitmap, new Rectangle(0, 0, 165, 165), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, vAttr);
            g.Save();
            g.Dispose();
    
    
    
            bitmappng.Save(path, ImageFormat.Png);
  • 相关阅读:
    在VS2010下,用QT,创建一个Opencv应用程序
    SNR(信噪比)与 特定分布噪声的关系初探
    Qt学习笔记_FindDialog
    关于reduced rank regression的一些看法
    实时摄像头人眼跟踪: RealTime Tracking Of Human Eyes Using a Webcam
    L1_APG_Tracker实现代码剖析
    CVPR2013 感兴趣论文汇总
    使用PowerDesigner 15对现有数据库进行反向工程(图解教程)(转)
    大数据量高并发的数据库优化
    rtmp和rtsp的区别
  • 原文地址:https://www.cnblogs.com/gxivwshjj/p/13180267.html
Copyright © 2011-2022 走看看