去掉图片黑背景输出为透明png(算法和工具)

 注意: 由于此小软件年代久远,已经无法使用我也没法更新,非常抱歉,请大家不用再浪费积分下载。

如果需要去除图片黑背景,请使用这个我新做的便捷小工具:一个快速去除黑背景和其他颜色背景,生成透明PNG图的小工具_含影的博客-CSDN博客

由于服务器会产生费用,如果大家觉得有用,可以选择略微打个赏,感谢。

有时候你得到的图片不是透明的png而是加了黑背景的图(可能是:.jpg,.gif,.png等格式的图)

例如一个粒子效果的图:

多好的粒子效果,可惜它有黑背景。不处理一下,不好用。

经过移除黑背景处理为png后,变为:

这时候这个效果图片就可以方便的使用了。

那么如何实现黑背景移除,并生成透明的png呢?

算法如下:

首先从源带黑背景的图上,获取R,G,B三个通道各自的图像数据,这些数据一定要带alpha通道。

然后将这三份数据按照R,G,B的顺序 用 滤色 模式混合(可以试试其他模式) ,再存为png格式的图。

这样操作后最终得到的就是去掉黑背景的透明png图了。 

这里可以下载做好的工具包,这个压缩包里,包含:

      一个.doc文件,是网友整理的如何使用ps实现上述效果的操作教程。

      一个rpg.air 文件, 如果你安装了Adobe Air运行环境,则直接双击安装此程序,安装好后,看使用说明.txt即可。

      操作很简单。

在这里下载:http://download.csdn.net/detail/vily_lei/4467752

或者去这里:去掉图片黑背景输出为透明png(算法和工具) - vily_雷 - 博客园

这个 rpg.air 程序可以拖入单张图操作也可以拖入包含图的文件夹这时候会自动批处理文件夹内所有的图。

能处理的图片格式为:.jpg/jpeg,.png,.gif(单帧) 

这个小程序上方有些按钮和文本,他们可以设置一些参数。

红色增量,滤色增量,蓝色增量,这些值越大,则得到的图色彩越实。

黑色衰减用于过滤不同程度的黑色,这个值越大,则能过滤的黑色月偏"白"。

注意: 由于此小软件年代久远,已经无法使用我也没法更新,非常抱歉,请大家不用浪费积分。

如果需要去除图片黑背景,请见这个小工具:一个快速去除黑背景和其他颜色背景,生成透明PNG图的小工具_含影的博客-CSDN博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 下面是一个将VB中的PNG图像操作为透明背景图片的示例: ```vb Private Sub ConvertToTransparentBG() ' 加载PNG图像 Dim image As Image = Image.FromFile("D:\test.png") ' 创建一个具有透明背景的位图 Dim bitmap As New Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb) ' 设置位图的分辨率与图像一致 bitmap.SetResolution(image.HorizontalResolution, image.VerticalResolution) ' 创建图像绘制对象 Dim gfx As Graphics = Graphics.FromImage(bitmap) ' 清空位图并将其背景设置为透明 gfx.Clear(Color.Transparent) ' 在位图上绘制PNG图像 gfx.DrawImage(image, New Rectangle(0, 0, image.Width, image.Height)) ' 保存处理后的图像为PNG文件(可以指定保存路径) bitmap.Save("D:\transparent_bg.png", ImageFormat.Png) ' 清理资源 gfx.Dispose() image.Dispose() bitmap.Dispose() End Sub ``` 在示例中,我们首先加载PNG图像,并创建了一个具有透明背景的位图。然后,我们使用Graphics对象的DrawImage方法将加载的PNG图像绘制在位图上。最后,我们保存处理后的图像为PNG文件,并清理了使用到的资源。 ### 回答2: 示例代码如下: ```vb Imports System.Drawing Imports System.Drawing.Imaging Public Class Form1 Inherits Form Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim sourceImage As New Bitmap("input.png") ' 输入图片文件的路径 ' 在内存中创建一个新的位图,并设置大小和原图一致 Dim targetImage As New Bitmap(sourceImage.Width, sourceImage.Height) ' 遍历原图的每一个像素 For y As Integer = 0 To sourceImage.Height - 1 For x As Integer = 0 To sourceImage.Width - 1 Dim pixel As Color = sourceImage.GetPixel(x, y) ' 获取当前像素的颜色 ' 如果该像素的颜色是白色,则设置为透明 If pixel = Color.White Then targetImage.SetPixel(x, y, Color.Transparent) Else targetImage.SetPixel(x, y, pixel) ' 否则保持原来的颜色 End If Next Next targetImage.Save("output.png", ImageFormat.Png) ' 输出图片文件的路径 sourceImage.Dispose() targetImage.Dispose() End Sub End Class ``` 这个示例演示了使用VB.NET操作PNG图片,将白色像素设置为透明背景。首先,我们读取输入的PNG图片,并在内存中创建一个与原图大小相同的位图。然后,遍历原图的每一个像素,如果该像素的颜色是白色,则将其设置为透明;否则将保持原来的颜色。最后,将处理后的图像保存为一个新的PNG文件。 注意,你需要将"input.png"和"output.png"分别替换为你自己的输入和输出图片的路径。 ### 回答3: 下面是一个使用VB操作PNG透明背景图片的示例: 首先,确保你已经在计算机上安装了Visual Basic语言的开发环境,比如Visual Studio。然后按照以下步骤进行操作: 1. 创建一个新的Visual Basic项目。 2. 在项目中导入System.Drawing命名空间,以便能够使用图像处理相关的类和方法。 3. 从文件系统中加载一个PNG图像,可以使用Image类的Fromfile方法。 4. 将该图像对象的背景色调整为透明,可以使用Color类的FromArgb方法来指定透明度为0。 5. 将处理后的图像保存到指定的位置,可以使用Image类的Save方法。 以下是具体的示例代码: ``` Imports System.Drawing Module Module1 Sub Main() ' 加载PNG图像 Dim imagePath As String = "C:\path\to\your\image.png" Dim image As Image = Image.FromFile(imagePath) ' 将背景色调整为透明 Dim transparentColor As Color = Color.FromArgb(0, 255, 255, 255) image.MakeTransparent(transparentColor) ' 保存处理后的图像 Dim outputPath As String = "C:\path\to\your\output.png" image.Save(outputPath) ' 释放图像资源 image.Dispose() End Sub End Module ``` 请确保替换`"C:\path\to\your\image.png"`和`"C:\path\to\your\output.png"`为你实际的文件路径。运行以上代码后,你将会得到一个具有透明背景PNG图像。 希望这个例子对你有帮助!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值