VB.NET:生成底色透明的PNG图片
2019独角兽企业重金招聘Python工程师标准>>>
今天研究了下.NET窗体应用程序生成透明底色的PNG图像。
我的.NET版本为.NET 4.5,VS版本为VS2012,操作系统版本为Win7旗舰版ServicePack1。
例程1:生成100%纯透明的PNG图片,这个例程生成的是一张没有任何杂质的透明PNG图片。
''' <summary>
''' 生成100%透明的PNG图片
''' </summary>
''' <param name="Width">横向长度</param>
''' <param name="Height">纵向长度</param>
''' <param name="OutputPath">图片输出地址</param>
''' <remarks></remarks>
Public Sub GenTransparentPNG(ByVal width As Integer,ByVal height As Integer,ByVal outputPath As String)Dim image As Bitmap = New Bitmap(width, height)Dim g As Graphics = Graphics.FromImage(image)g.Clear(Color.Transparent)image.Save(outputPath, System.Drawing.Imaging.ImageFormat.Png)
End Sub
例程2:生成100%透明的PNG图片+一个矩形。
''' <summary>
''' 生成100%透明的PNG图片+一个矩形
''' </summary>
''' <param name="Width">横向长度</param>
''' <param name="Height">纵向长度</param>
''' <param name="OutputPath">图片输出地址</param>
''' <remarks></remarks>
Public Sub GenTransparentPNGAndRect(ByVal width As Integer,ByVal height As Integer,ByVal outputPath As String)Dim image As Bitmap = New Bitmap(width, height)Dim g As Graphics = Graphics.FromImage(image)g.Clear(Color.Transparent)If width > 20 And height > 20 Theng.DrawRectangle(Pens.Black, New Rectangle(10, 10, width - 20, height - 20))End Ifimage.Save(outputPath, System.Drawing.Imaging.ImageFormat.Png)
End Sub
例程3:生成白色底色的PNG图片+一个矩形。
''' <summary>
''' 生成白色底色的PNG图片+一个矩形
''' </summary>
''' <param name="Width">横向长度</param>
''' <param name="Height">纵向长度</param>
''' <param name="OutputPath">图片输出地址</param>
''' <remarks></remarks>
Public Sub GenWhitePNGAndRect(ByVal width As Integer,ByVal height As Integer,ByVal outputPath As String)Dim image As Bitmap = New Bitmap(width, height)Dim g As Graphics = Graphics.FromImage(image)g.Clear(Color.White)If width > 20 And height > 20 Theng.DrawRectangle(Pens.Black, New Rectangle(10, 10, width - 20, height - 20))End Ifimage.Save(outputPath, System.Drawing.Imaging.ImageFormat.Png)
End Sub
例程4:将指定颜色替换为透明,如果有需要还可以将此例程进行改造,使得在一定范围内的颜色都被替换为透明。
''' <summary>
''' 将指定颜色替换为透明
''' </summary>
''' <param name="bitmapPath">被替换图像地址</param>
''' <param name="outputPath">新图像输出地址</param>
''' <param name="color">被替换颜色</param>
''' <remarks></remarks>
Public Sub ChangeBackgroundToTransparent(ByVal bitmapPath As String,ByVal outputPath As String,ByVal color As Color)Dim image As Bitmap = New Bitmap(bitmapPath)For i As Integer = 0 To image.Width - 1For j As Integer = 0 To image.Height - 1Dim colorTmp = image.GetPixel(i, j)If colorTmp.R = color.R And colorTmp.G = color.G And colorTmp.B = color.B Thenimage.SetPixel(i, j, Drawing.Color.Transparent)End IfNextNextimage.Save(outputPath, System.Drawing.Imaging.ImageFormat.Png)
End Sub
Main函数调用
Sub Main()'生成200*200的纯透明PNG图片GenTransparentPNG(200, 200, "C:\Users\Tsybius\Desktop\transparent.png")'生成200*200的透明PNG图片外加一个矩形GenTransparentPNGAndRect(200, 200, "C:\Users\Tsybius\Desktop\transparentRect.png")'生成200*200的白色背景PNG图像外加一个矩形GenWhitePNGAndRect(200, 200, "C:\Users\Tsybius\Desktop\whiteRect.png")'将200*200的白色背景PNG图像中白色抠去替换为透明GenWhitePNGAndRect(200, 200, "C:\Users\Tsybius\Desktop\whiteRect2.png")ChangeBackgroundToTransparent("C:\Users\Tsybius\Desktop\whiteRect2.png", "C:\Users\Tsybius\Desktop\transparentRect2.png", Color.White)'生成完毕Console.WriteLine("生成完毕")Console.ReadLine()
End Sub
运行结果如下:
附上另外两个实用的小技巧:
1、获取图像指定点的RGB值,用QQ截图工具,按下Ctrl+Alt+A进入截图模式后,鼠标右下角会自动显示出当前鼠标指针指向位置的颜色信息。
在截图模式下,按下Ctrl键,可以看到十六进制显示的RGB信息
2、判断图像的背景色是否为透明的,可以打开一个PowerPoint演示文稿,设置一个背景,然后将要判断的图像放入即可。
我使用的Office版本为:Microsoft Office Professional Plus 2010,PPT版本为:14.0.4760.1000(32位)。
END
转载于:https://my.oschina.net/Tsybius2014/blog/690199
VB.NET:生成底色透明的PNG图片相关推荐
- 【转】关于Java生成背景透明的png图片
http://www.cnblogs.com/dotjava/archive/2008/09/04/1283963.html 关于Java生成背景透明的png图片 最近用到Java动态生成背景透明的图 ...
- Java自动生成背景透明的印章或签名
工具类 import com.Jake_955.common.business.BusinessException; import lombok.Builder; import lombok.Gett ...
- java 显示透明背景png图片
首先理由ps生成一个背景透明的png图片,然后设置JPanel面板的透明属性,也就是panel.setOpaque(false);设置为透明 class MyPanel extends JLayere ...
- android动态生成背景透明带文字的图片
生成的图片背景一直是黑色,几经查找资料发现,若要使背景为透明,必须设置为Config.ARGB_4444,或者Config.ARGB_8888, 而不是Bitmap.Config.RGB_565 ...
- matlab出图底色透明
matlab出图底色透明 使用图片导出功能,保存为png格式,底色即为透明
- 如何生成背景透明的微信小程序二维码
如何生成背景透明的微信小程序二维码 透明背景参数 透明背景参数 is_hyaline 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 public function g ...
- 用Python生成随机的中文验证码图片
大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...
- IE6下PNG图片透明效果(PNG图片做背景也可以)
懒人萱在这里保证发的文章都是高质量的经过测试的JS代码,而且IE6.IE7和火狐都兼容的,希望大家多多关注我的帖子,我会把我的经验都共享出来哦! 懒人萱在寻找PNG图片透明效果的JS特效代码的时候,发 ...
- 为什么存png还有白色底_用photoshop保存透明背景的图片为png格式,为什么打开后是白色背景了?...
Photoshop想要保存透2113明背景的图片要保存PNG格式,保存JPG格式就5261会变成图片.41021.电脑打开Photoshop.2.打1653开Photoshop后,打开一张图片.3.打 ...
最新文章
- jQuery Masonry 一个 jQuery动态网格布局的插件
- 区块链技术应用的关键问题和挑战
- 今天刚刚开通了写播客的功能,以后记录工作学习的点点滴滴
- iOS开发UI篇—CAlayer(创建图层)
- html5 sse java_html5----sse实现服务端推送数据给前端
- Java面向对象编程篇1——类与对象
- 学生管理系统c语言代码实验报告,C语言学生信息管理系统实验报告(含源代码).doc...
- 解决Vscode编辑器不能打开多标签页问题
- android 自定义锁屏api,Android锁屏小部件
- 数据结构课程设计——逆波兰表达式的计算
- 台式机通过笔记本的WIFI连接上网,并实现笔记本对台式机的远程连接
- 调查计算机对运算能力的影响,计算器对运算能力的影响的报告.docx
- PostgreSQL对汉字按拼音排序
- c++ private、protect、public、virtual详细说明***
- 简单平台用户信息管理系统
- 解决xampp安装后遇到的常见问题
- 分布式进阶(十九) 基于集群的动态反馈负载均衡策略
- win7系统安装sql server 2000 图解全过程
- 新研究挑战DNA随机突变进化理论
- 新能源汽车充电硬件接口标准
热门文章
- Robot Techology
- python 怎么输入字符上的横线_python中下划线怎么打
- 烟来风吹火来水灭,智慧隧道的安全措施提升了200%
- html frame滚动条,如何修改 iframe 滚动条样式
- C#编程基础——综合项目实践:KTV点歌系统项目第三课:辅助类开发及登录窗体制作
- Ubuntu18.04+Win10双系统下ubuntu关机时电源和风扇无法关闭解决方案
- Win10 操作系统,开机硬盘占用了过高,导致电脑卡断
- HttpStatusEnum - Http状态码枚举
- JSON, JSONObject, JsonObject
- 流媒体播放-在线音乐(1)