ImageMagick - 设置透明带 AlphaChannel 的 png 图片的透明度

学习和使用ImageMagick也有几年时间了,其实对 ImageMagick 的了解还仅仅是皮毛吧。

最近在写代码的时候,遇到一个调整透明png图片透明度的问题:

当1张png图片,有些区域是透明的,我平时调整图片透明度使用的是:MagickSetImageOpacity(),可对透明背景的png,怎么调也没效果。

后来实在没办法,我找了两个替换方案:

方案1. 删除alpha通道: MagickSetImageAlphaChannel(mw_current, RemoveAlphaChannel); 然后再 MagickSetImageOpacity()

方案2. 给当前的png透明图片加一个白色背景,然后再 MagickSetImageOpacity()

可是很明显,这两个方案处理结果就是,虽然png透明度能调整了,但是生成的图片背景不透明了。

我今天用ps尝试了一下,可以正常的调整一个透明的png图片的透明度。

我想,ps能做到, imagemagick也能办到,继续网上搜索,终于找到一个函数: MagickEvaluateImage(mw_current, MultiplyEvaluateOperator, opacity);

根据网上的提示,在处理 png 透明图片的透明度时,必须使用 MagickEvaluateImage,用 MagickSetImageOpacity 没用!

不过,MagickEvaluateImage 第2个参数有很多选择,我花了几分钟时间才找到合适的参数:MultiplyEvaluateOperator,这个就是用来调整透明度的。

到此为止,终于找到答案。

时间: 2024-08-24 06:01:41

ImageMagick - 设置透明带 AlphaChannel 的 png 图片的透明度的相关文章

Windows10设置禁止IE浏览器显示图片的技巧

一位win10 32位系统用户反馈自己因为某些原因,必须要在电脑上使用移动数据流量上网.而此时,IE浏览器若是显示图片的话,就会造成流量消耗过快的问题.那么,在Win10上该如何设置IE浏览器禁止显示图片呢?下面,就随系统城小编来看看具体操作方法吧! 操作方法: 1.点击IE浏览器设置. 2.在设置菜单中,选择Internet选项. 3.选择高级选项卡. 4.在多媒体项目下,取消勾选365bet显示图片. 5.点击确定. 通过上述几步的简单操作,我们就能在Windows10系统下设置禁止IE浏览

ios开发设置button的选中状态图片

可以在故事版中设置好所需要的图片,然后现在h文件中声明按钮的属性和方法 - (IBAction)moodViewShow:(id)sender; @property (weak, nonatomic) IBOutlet UIButton *faceBtn; 并且与故事版完成连接,然后在按钮的方法里设置选中的状态 - (IBAction)moodViewShow:(id)sender { if ([self.faceBtn isSelected]) {//如果是选中状态就置为no, [self.f

[iOS]统一设置返回按钮为自定义图片的方法

我们可以通过基类设置BackButton的样式,也可以设置LeftButton然后隐藏BackButton,但是那样的话手势返回就没了. 现在找到的方案是:设置返回按钮的背景图片为自定义的图片,为了解决会显示Back字样的问题,设置Title偏移到屏幕不可见的位置即可. 完整代码如下: UIImage *backImage = [UIImage imageNamed:@"backNor"]; [[UIBarButtonItem appearance] setBackButtonBack

ImageMagick +Im4java 处理上传的图片,截图,缩略图,保证高质量

ImageMagick 在windows下是不存在的,linux一般都有(最后也请确认下,可以参考官网,不过也可以简单的运行convert 命令判断). 软件官网:im4java.sourceforge.net ps 请翻墙. ImageMagick官网: http://www.imagemagick.org/ 简单操作操作: /** *@author 孙月江 */ import java.io.File; import org.im4java.core.ConvertCmd; import o

插一张图片,用SeekBar来控制图片的透明度

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent

改变图片的透明度,图片自适应屏幕

改变图片的透明度 float speed=0.2f; float starttime; void Start () { starttime = Time.time; } void Update() { GUITexture.color.a = Mathf.Lerp (0, 1, (Time.time - starttime) * speed); } --------------------------------------------------------------------- 图片自适

搭建带lua模块的nginx调用ImageMagick工具实现实时剪切缩放图片功能

一.安装LuaJIT. wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar xf LuaJIT-2.0.4.tar.gz cd LuaJIT-2.0.2 make make install 设置环境变量,设置后不要切换控台,否则会失效. export LUAJIT_LIB=/usr/local/lib export LUAJIT_INC=/usr/local/include/luajit-2.0 做软链接,并加载模块 ln -s /us

jQuery获取和设置disabled属性、背景图片路径

之前对于这个独特的disabled属性获取和设置很混乱,今天项目中用到了,用attr不能实现,于是多次试验得出: 获取disabled属性用prop $("#basic_key").prop("disabled") 以上会返回true或false. 然后设置disabled是attr,重点是后面的一个参数不加引号: $("#basic_key").attr("disabled",'false') //false加引号是错误的~

Pyqt 设置 背景颜色和背景图片

首先设置autoFillBackground属性为真然后定义一个QPalette对象设置QPalette对象的背景属性(颜色或图片)最后设置QWidget对象的Palette 实例: 1 # -*- coding: utf-8 -*- 2 import sys 3 from PyQt4 import QtGui 4 from PyQt4.QtGui import * 5 from PyQt4.QtCore import * 6 7 8 class Icon(QtGui.QWidget): 9 d