150 likes | 331 Views
网格环境下 ImageMagick 功能的实现. 国家天文台 王晓倩 第三届中国虚拟天文台研讨会 2004-12-02 武汉. 内容. 为什么要对 ImageMagick 封装 ImageMagick 的功能 工作流程. 网格环境下 ImageMagick 的封装. China-VO 的体系结构: 从下到上依次是:构造层、资源层、汇集层和用户层 现有大量天文软件 “开放的软件、廉价的硬件”的原则. 软件的分类: - Astronomical Utilities - Image Manipulation
E N D
网格环境下ImageMagick功能的实现 国家天文台 王晓倩 第三届中国虚拟天文台研讨会 2004-12-02 武汉
内容 • 为什么要对ImageMagick封装 • ImageMagick的功能 • 工作流程
网格环境下ImageMagick的封装 • China-VO的体系结构: 从下到上依次是:构造层、资源层、汇集层和用户层 • 现有大量天文软件 “开放的软件、廉价的硬件”的原则
软件的分类: - Astronomical Utilities - Image Manipulation - Math and Statistics - Plotting simple I/O and simple user interface
ImageMagick • 开源软件: http://www.imagemagick.org • 支持多种图像格式(90多种主要格式) • 多种图形功能 • 多种操作方式: ( command line 或者 编程语言接口C, C++,Perl, Java, PHP等) • 稳定的API • JMagick 是ImageMagick 的Java编程接口
ImageMagick功能简介 • 将图片从一个格式转换到另一个格式 • 改变尺寸、旋转、锐化(sharpen)、减色、图片特效 • 缩略图片的合成图( a montage of image thumbnails) • 适于web的背景透明的图片 • 将一组图片做成gif动画 • 将几张图片做成一张组合图片 • 在一个图片上写字或画图形 • 给图片加边框或框架 • 取得一些图片的特性信息
ImageMagick图形操作 • Commandline convert [ [ options ... ] [ input-file ... ] ... [ output-file ] ] display[options ...]file ...[ [options ...]file ...] composite[options ...]change-image base-image[mask-image]output-image • JMagick jmagick.jar: MagickImage.class MagickInfo.class ……
服务开发环境 • Redhat 9.0+Globus Toolkit3.0 • ImageMagick 5.5.7 • Jmagick 5.5.6 • Tomcat 4.1
Web client(convert3.html) • 功能描述 • 关键步骤 JavaBean:smartupload.jar 提交:字节流的方式 接收:<jsp:useBean id="mySmartUpload" scope="page" class=“com.jspsmart.upload.SmartUpload” /> -------使用bean File----------Byte[]
Web server/Grid client(rotation.jsp) • rotation.jsp <jsp:useBean id="file_reader" class="fileReader.fileReader" scope="session"/> javaBean: fileReader.class FormatConvertClient cc=new FormatConvertClient("http://192.168.3.26:8080 /ogsa/services/org/FormatConvert/FormatConvertFactoryService","null"); byte[] out=cc.getFormatConvert(in,this.outputType); Byte[ ]
Grid server • 函数原型 public byte[] getRotation(byte[] input, double degrees); public byte[] getFormatConvert(byte[] input, String outputType); public byte[] getQuantization(byte[] input); …… • 功能说明 格式转换、旋转、量子化、边框、剪切、锐化等。 • 参数说明 字节流,旋转角度,转换类型,边框颜色宽度等。 Byte[]---------File------------Byte[]