|
|

楼主 |
发表于 2006-4-28 12:07:23
|
显示全部楼层
2006年4月28日这个问题经过自己的研究解决了。谢谢楼上的各位的帮助,特别是告诉我使用ImageMagick的gamedragon兄弟。
这个问题有几个要点,1、开发的平台为linux,2、开发语言为C语言,3、实现图像格式和尺寸的变换。
配置
硬件CPU 2.2G intel P4,硬盘80G,内存512M PC。
Linux 选择目前最流行的RedHat,版本 Redhat Enterprise Linux Advanced Server 4,安装时选择配置安装包,选择开发包,图像处理包,选择samba包。刚开始我是装的AS3,但是它的很多rpm包版本都太低没办法只好装AS4。安装gcc g++等开发工具,图像处理工具主要是为了验证程序的效果,并且在这个程序的运行中需要用到图像处理的包。
1、配置环境、安装ImageMagick
http://www.imagemagick.org/script/index.php
ImageMagick?, version 6.2.7, is a free software suite to create, edit, and compose bitmap images. It can read, convert and write images in a large variety of formats. Images can be cropped, colors can be changed, various effects can be applied, images can be rotated and combined, and text, lines, polygons, ellipses and Bézier curves can be added to images and stretched and rotated.
ImageMagick is free software: it is delivered with full source code and can be freely used, copied, modified and distributed. Its license is compatible with the GPL. It runs on all major operating systems.
ImageMagick有2种安装模式,RPM和source,通过测试RPM的安装不能安装所需的API,source安装模式详细介绍见
Install from Source
http://www.imagemagick.org/script/install-source.php
Advanced Unix Source Installation
http://www.imagemagick.org/script/advanced-unix-installation.php
首先下载source的tar包这里有一个小技巧可以借鉴,如果对linux不是非常熟悉的情况下,可以用windows的电脑下载相关的包,然后在linux下面打开smb服务,共享一个目录作为windows机器和linux机器交换文件的目录。
Redhat下打开SMB(samba)服务步骤。
chkconfig --level 35 smb on //在runlevel 35下打开smb服务。
service smb start //启动smb服务。
然后共享一个目录
比如在你的机器上有一个用户名字为north,你想共享他的home目录作为文件交换的目录。
smbpasswd -a north
然后系统会提示你输入密码2遍。这个密码就是共享密码,当然你可以不输就是空密码。
然后你就可以像在windows下共享文件夹一样搜索Linux机器用名字或者IP搜索。找到这个机器然后用户名
north
密码
就可以进入linux共享的目录,和windows一样你可以把你需要的文件传到这个目录。
把soruce的tar包ImageMagick.tar.gz放到linux上
然后用下述命令解压
tar -xzvf ImageMagick.tar.gz
生成ImageMagick-6.2.7目录
进入这个目录
cd /home/north/ImageMagick.tar.gz
配置
./configure
配置完成后输入
make
完成后
make install
完成source的安装。
2、编译程序
源程序为core.c
把这个文件放到linux上/root目录当然你也可以放到其他目录,放到root只是方便一点。
然后回到/root目录
运行
cc `Magick-config --cflags --cppflags` core.c `Magick-config --ldflags --libs`
注意这里`是普通PC键盘上esc键下面的那个按键。还有命令不能输错。
如果成功可以看到在root目录下有生成的a.out可执行文件。
3、测试
把一个图像放到/root目录比如a.jpg 图片尺寸没什么大关系,当然放一个大点的图片效果明显一些。
最终转化之后的图片大小为106*80,如果你想改变为其他的尺寸可以到源程序中修改这2个数字,当然如果有兴趣的话完全可以通过参数的形式传递你想要的尺寸,这就需要修改一下程序。
运行程序a.out并测试
./a.out a.jpg a1.png
这样就可以把a.jpg转化为a1.png,在/root目录下可以看到生成的a1.png你可以用linux自带的图片编辑程序gimp打开这个png图片看看效果。还有就是这个程序可以实现不同图片格式的自由转换。
./a.out a.jpg a2.gif
./a.out a.jpg a3.bmp
等等
如何编辑源程序core.c
vi core.c
就可以了。 |
|