本教程展示了如何创建并保存一个透明的区域图像应用两种不同的技术在Python应用程序使用LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何添加图片在Python应用程序透明度。 |
完成时间 | 20分钟 |
Visual Studio项目 | 下载教程项目(2 KB) |
平台 | Python控制台应用程序 |
IDE | Visual Studio 2022 |
运行时目标 | Python 3.10或更高版本 |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
|
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前为图像增加透明度——Python教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果项目不可用,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。
本教程需要以下dll:
Leadtools.dll
Leadtools.Codecs.dll
对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
与项目创建、添加引用,许可,可以开始编码。
开放Project-Name.py
在解决方案资源管理器和添加以下语句。
从pythonnet进口*
进口clr
导入系统
#设置搜索路径LEADTOOLS dll
sys.path.append(右“C: \ LEADTOOLS22 \ Bin \网”)
clr.AddReference (“先”)
clr.AddReference (“Leadtools”)
clr.AddReference (“Leadtools.Codecs”)
从系统。IO进口*
从Leadtools进口*
从Leadtools。编解码器进口*
从Leadtools。ImageProcessing进口*
在Project-Name.py
文件添加一个新方法AddAlphaTransparency ()
这需要一个图像集全白和近乎全地区是透明的通过操纵图像的alpha通道。
def AddAlphaTransparency (inputImage):
#创建一个使用后8位图像Alpha通道
α= inputImage.CreateAlphaImage ()
# alpha通道填充白色导致所有像素是不透明的
填补= FillCommand (RasterColor.White)
fill.Run(α)
#发现白色和近乎全输入图像的像素,并创建一个地区
colorLow = RasterColor (245、245、245)
colorHi = RasterColor.White
inputImage。AddColorRgbRangeToRegion (colorLow colorHi RasterRegionCombineMode.Set)
#区域复制到α的形象
α。SetRegion(没有inputImage.GetRegion(没有),RasterRegionCombineMode.Set)
inputImage.MakeRegionEmpty ()
#表示透明像素填充该地区为黑色
填满。颜色= RasterColor.Black
fill.Run(α)
outputImage = inputImage.Clone ()
outputImage.SetAlphaImage(α)
返回outputImage
添加一个新方法AddTransparentColor ()
这需要一个图像并将所有白色和近乎全区域转换成纯白色,然后是白色透明的。
def AddTransparentColor (inputImage):
outputImage = inputImage.Clone ()
#发现白色和近乎全输入图像的像素,并创建一个地区
colorLow = RasterColor (245、245、245)
colorHi = RasterColor.White
outputImage。AddColorRgbRangeToRegion (colorLow colorHi RasterRegionCombineMode.Set)
#填补该地区只有一个白色启用设置它作为一个独特的透明色
填补= FillCommand (RasterColor.White)
fill.Run (outputImage)
outputImage。透明= True
outputImage。左下角= RasterColor.White
outputImage.MakeRegionEmpty ()
返回outputImage
在main ()
方法,加载一个基础图像透明度添加到它并将其传递给上面创建的两个方法:
AddAlphaTransparency ()
然后保存生成的形象32位PNG存储透明alpha通道。AddTransparentColor ()
然后保存生成的图像是PNG或者GIF,因为两种格式支持透明的颜色。#将以下代码添加到main()方法调用后SetLicense ()
编解码器= RasterCodecs ()
形象= codecs.Load (r“C: \ LEADTOOLS22 \资源\ \ testframe1.jpg图像”)
#创建一个新的形象与透明度alpha通道近乎全地区的形象
imageWithAlpha = AddAlphaTransparency(图片)
#另存为32位PNG存储和图像alpha通道
编解码器。保存(imageWithAlpha, r“C: \ LEADTOOLS22 \资源\ \ imagePlusAlpha.png图像”,RasterImageFormat。Png, 32)
#创建一个新的形象与透明度alpha通道近乎全地区的形象
imageWithTransparentColor = AddTransparentColor(图片)
#另存为8位GIF图像存储与透明的颜色
编解码器。保存(imageWithTransparentColor, r“C: \ LEADTOOLS22 \资源\ \ imageWithTranspColor.gif图像”,RasterImageFormat。Gif, 8)
加载文件使用MemoryStream
,替换的代码main ()
用以下方法:
def main ():
SetLicense ()
编解码器= RasterCodecs ()
filepath = r“C: \ LEADTOOLS22 \资源\ \ testframe1.jpg图像”
字节= File.ReadAllBytes (filepath)
女士= MemoryStream(字节)
形象= codecs.Load(女士)
#图像= codecs.Load (r " C: \ LEADTOOLS22 \资源\ \ testframe1.jpg图片”)
#创建一个新的形象与透明度alpha通道近乎全地区的形象
imageWithAlpha = AddAlphaTransparency(图片)
#另存为32位PNG存储和图像alpha通道
编解码器。保存(imageWithAlpha, r“C: \ LEADTOOLS22 \资源\ \ imagePlusAlpha.png图像”,RasterImageFormat。Png, 32)
#创建一个新的形象与透明度alpha通道近乎全地区的形象
imageWithTransparentColor = AddTransparentColor(图片)
#另存为8位GIF图像存储与透明的颜色
编解码器。保存(imageWithTransparentColor, r“C: \ LEADTOOLS22 \资源\ \ imageWithTranspColor.gif图像”,RasterImageFormat。Gif, 8)
按运行项目F5,或通过选择调试- >开始调试。
如果遵循正确的步骤,应用程序运行和加载JPEG图像,增加透明度,两种不同的方法并保存结果图像与透明度两个不同的文件。
本教程展示了如何添加必要的引用产生透明的图像以及如何保存图像文件。