熟悉Imagick库的朋友进来帮个忙,想要有程序生成一个透明渐变的png图片

时间:2021-08-19 21:29:56
已经知道这样可以生成一个png图片,但整个图片的透明度都是相同的,我想要的是一个透明度渐变的png图。有没有朋友能帮忙改下。谢了。

<?php
$png=new Imagick();
$png->newImage(100,20,new ImagickPixel("#FFFFFF"));
$png->setImageFormat("png");
$png->setImageOpacity(0.4);
?>

5 个解决方案

#1


没用过im类,建议查一下api吧。

#2


查了api,没有收获,所以还是得问。

#3


ImageMagick内容来自:
ImageMagick是一套稳定的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个图片或图片序列进行改变大小、旋转、锐化、减色或增加特效,并将操作的结果以相同格式或其它格式保存。对图片的操作,可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分地支持SVG。现在,ImageMagic的主要精力集中在性能、减少bug以及提供稳定的API和ABI上。ImageMagick功能强大,却是免费的。

目录
• 功能介绍
• 命令行工具
• 下载安装
• 参考资料
功能介绍编辑本段回目录
ImageMagick的功能
1. 将图片从一个格式转换到另一个格式
2. 改变尺寸、旋转、锐化(sharpen)、减色、图片特效
3. 缩略图片的合成图( a montage of image thumbnails)
4. 适于web的背景透明的图片
5. 将一组图片做成gif动画
6. 将几张图片做成一张组合图片
7. 在一个图片上写字或画图形
8. 给图片加边框或框架
9. 取得一些图片的特性信息

ImageMagick几乎可以在任何非专有的操作系统上编译,无论是32位还是64位的CPU,包括*nix ,Windows'95/'98/ME/NT 4.0/2000/XP, Macintosh (MacOS 9 /10), VMS 和 OS/2.

命令行工具编辑本段回目录
[convert|identify|mogrify|composite|montage|compare|display|animate|import|conjure]

ImageMagick包括一组命令行工具来操作图片。你大部份习惯每次编辑图片都提供图形用户接口(GUI)编辑图像就像GIMP和PhotoShop一样。然而,一个图形用户接口不总是方便的。假如你想要从一个网页动态地处理一个图像,或者你在不同时间生成一样的或不同的图像,想要对许多图像或重复特定应用相同的操作。对于操作的这些类型,处理公用程序命令行工具是一个好的选择。

在下面的段落中,可以找到命令行工具的简单短描述。点击程序名称可以得到关于这个程序的具体用法。如果你想得到更多的关于ImageMagick,请仔细阅读以下命令行工具的使用方法:

convert
转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。

identify
描述一个或较多图像文件的格式和特性。

mogrify
按规定尺寸制作一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。

composite
根据一个图片或多个图片组合生成图片。

montage
创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。

compare
在算术上和视觉上评估不同的图片及其它的改造图片。

display
如果你拥有一个Xserver的系统,它可以按次序的显示图片

animate
利用Xserver显示动画图片

import
在Xserver或任何可见的窗口上输出图片文件。你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。

conjure
解释执行MSL(MagickScriptingLanguage)写的脚本。

下载安装编辑本段回目录
ImageMagick在很多服务器上都可以下到,甚至很多个人站点也提供了下载。建议到ImageMagick的官方主页上下载最新版本的源码包,我下的是ImageMagick-5.5.6.tar.gz,在linux下的安装过程如下:
tar zxvf ImageMagick-5.5.6.tar.gz
cd ImageMagick-5.5.6
/configure
make all
su
make install

最后,可以测试一下ImageMagick的工作效果:
 /usr/local/bin/convertlogo:logo.gif
恭喜你,你已经有ImageMagick的工作环境了,你可以使用ImageMagick加入新图片,生成缩略图,组合图片……

注意不要忘记,将ImageMagick安装后的函数库所在目录加入到/etc/profile文件中的LD_LIBRARY_PATH环境变量中,以及/etc/ld.so.conf中同时运行ldconfig,否则一些对ImageMagic的应用可能会出问题。

#4


查到一些英文资料,你参考一下:

imagick_shade
(PECL)

imagick_shade -- Shine a distant light on an image to create a three-dimensional effect
Description
bool imagick_shade ( resource image, int gray, float azimuth, float elevation )



Warning 
This function is currently not documented; only the argument list is available.
 

Parameters


image
Image handle 

gray
A value other than zero shades the intensity of each pixel 

azimuth
Azimuth of the light source direction 

elevation
Elevation of the light source direction 


Return Values
Returns TRUE on success or FALSE on failure. 

#5


引用楼主 seai 的回复:
已经知道这样可以生成一个png图片,但整个图片的透明度都是相同的,我想要的是一个透明度渐变的png图。有没有朋友能帮忙改下。谢了。

PHP code
<?php
$png= r4new Imagick();
$png->newImage(100,20,new ImagickPixel("#FFFFFF"));
$png->setImageFormat("png");
$png->setImage……


这个真的好难啊

#1


没用过im类,建议查一下api吧。

#2


查了api,没有收获,所以还是得问。

#3


ImageMagick内容来自:
ImageMagick是一套稳定的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个图片或图片序列进行改变大小、旋转、锐化、减色或增加特效,并将操作的结果以相同格式或其它格式保存。对图片的操作,可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分地支持SVG。现在,ImageMagic的主要精力集中在性能、减少bug以及提供稳定的API和ABI上。ImageMagick功能强大,却是免费的。

目录
• 功能介绍
• 命令行工具
• 下载安装
• 参考资料
功能介绍编辑本段回目录
ImageMagick的功能
1. 将图片从一个格式转换到另一个格式
2. 改变尺寸、旋转、锐化(sharpen)、减色、图片特效
3. 缩略图片的合成图( a montage of image thumbnails)
4. 适于web的背景透明的图片
5. 将一组图片做成gif动画
6. 将几张图片做成一张组合图片
7. 在一个图片上写字或画图形
8. 给图片加边框或框架
9. 取得一些图片的特性信息

ImageMagick几乎可以在任何非专有的操作系统上编译,无论是32位还是64位的CPU,包括*nix ,Windows'95/'98/ME/NT 4.0/2000/XP, Macintosh (MacOS 9 /10), VMS 和 OS/2.

命令行工具编辑本段回目录
[convert|identify|mogrify|composite|montage|compare|display|animate|import|conjure]

ImageMagick包括一组命令行工具来操作图片。你大部份习惯每次编辑图片都提供图形用户接口(GUI)编辑图像就像GIMP和PhotoShop一样。然而,一个图形用户接口不总是方便的。假如你想要从一个网页动态地处理一个图像,或者你在不同时间生成一样的或不同的图像,想要对许多图像或重复特定应用相同的操作。对于操作的这些类型,处理公用程序命令行工具是一个好的选择。

在下面的段落中,可以找到命令行工具的简单短描述。点击程序名称可以得到关于这个程序的具体用法。如果你想得到更多的关于ImageMagick,请仔细阅读以下命令行工具的使用方法:

convert
转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。

identify
描述一个或较多图像文件的格式和特性。

mogrify
按规定尺寸制作一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。

composite
根据一个图片或多个图片组合生成图片。

montage
创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。

compare
在算术上和视觉上评估不同的图片及其它的改造图片。

display
如果你拥有一个Xserver的系统,它可以按次序的显示图片

animate
利用Xserver显示动画图片

import
在Xserver或任何可见的窗口上输出图片文件。你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。

conjure
解释执行MSL(MagickScriptingLanguage)写的脚本。

下载安装编辑本段回目录
ImageMagick在很多服务器上都可以下到,甚至很多个人站点也提供了下载。建议到ImageMagick的官方主页上下载最新版本的源码包,我下的是ImageMagick-5.5.6.tar.gz,在linux下的安装过程如下:
tar zxvf ImageMagick-5.5.6.tar.gz
cd ImageMagick-5.5.6
/configure
make all
su
make install

最后,可以测试一下ImageMagick的工作效果:
 /usr/local/bin/convertlogo:logo.gif
恭喜你,你已经有ImageMagick的工作环境了,你可以使用ImageMagick加入新图片,生成缩略图,组合图片……

注意不要忘记,将ImageMagick安装后的函数库所在目录加入到/etc/profile文件中的LD_LIBRARY_PATH环境变量中,以及/etc/ld.so.conf中同时运行ldconfig,否则一些对ImageMagic的应用可能会出问题。

#4


查到一些英文资料,你参考一下:

imagick_shade
(PECL)

imagick_shade -- Shine a distant light on an image to create a three-dimensional effect
Description
bool imagick_shade ( resource image, int gray, float azimuth, float elevation )



Warning 
This function is currently not documented; only the argument list is available.
 

Parameters


image
Image handle 

gray
A value other than zero shades the intensity of each pixel 

azimuth
Azimuth of the light source direction 

elevation
Elevation of the light source direction 


Return Values
Returns TRUE on success or FALSE on failure. 

#5


引用楼主 seai 的回复:
已经知道这样可以生成一个png图片,但整个图片的透明度都是相同的,我想要的是一个透明度渐变的png图。有没有朋友能帮忙改下。谢了。

PHP code
<?php
$png= r4new Imagick();
$png->newImage(100,20,new ImagickPixel("#FFFFFF"));
$png->setImageFormat("png");
$png->setImage……


这个真的好难啊