基于 Linux 的图像尺寸与格式变换程序的设计
时间:2006-04-21 来源:Northwindrocker
请教你一个问题:1. 基于 Linux 的图像尺寸与格式变换程序的设计
类型:软件设计与编程
平台: Linux
所需知识: C 语言,图像处理
说明:在 Linux 平台下用 C 编制一个程序,该程序实现图像尺寸变换和格式转换两个功能,图像尺寸变换主要实现图像的缩小,例如一幅 640*480 的图像转换为 320*240 ;图像格式的转换主要实现 .bmp 和 .jpg 转为 .png 格式。 这是一个朋友问我的问题,对这个问题我目前也没有现成的程序,不过这是一个很好的题目。我将把它作为近期的一个编程任务来作。 2006年4月28日这个问题经过自己的研究解决了。 这个问题有几个要点,1、开发的平台为linux,2、开发语言为C语言,3、实现图像格式和尺寸的变换。 配置 硬件CPU 2.2G intel P4,硬盘80G,内存512M PC。 Linux 选择目前最流行的RedHat,版本 Redhat Enterprise Linux Advanced Server 4,安装时选择配置安装包,选择开发包,图像处理包,选择samba包。安装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 就可以了。
类型:软件设计与编程
平台: Linux
所需知识: C 语言,图像处理
说明:在 Linux 平台下用 C 编制一个程序,该程序实现图像尺寸变换和格式转换两个功能,图像尺寸变换主要实现图像的缩小,例如一幅 640*480 的图像转换为 320*240 ;图像格式的转换主要实现 .bmp 和 .jpg 转为 .png 格式。 这是一个朋友问我的问题,对这个问题我目前也没有现成的程序,不过这是一个很好的题目。我将把它作为近期的一个编程任务来作。 2006年4月28日这个问题经过自己的研究解决了。 这个问题有几个要点,1、开发的平台为linux,2、开发语言为C语言,3、实现图像格式和尺寸的变换。 配置 硬件CPU 2.2G intel P4,硬盘80G,内存512M PC。 Linux 选择目前最流行的RedHat,版本 Redhat Enterprise Linux Advanced Server 4,安装时选择配置安装包,选择开发包,图像处理包,选择samba包。安装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 就可以了。
相关阅读 更多 +