zoukankan      html  css  js  c++  java
  • GraphicsMagick+im4java 图片处理

    最近团队内部分享GraphicsMagick+im4java 图片处理 就把如何安装,运行都统一整理一下。

    详细如下:

    在windows上安装ImageMagick:

    download 地址:http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/windows/

    关于Q8,Q16,Q32的说明:(建议使用8,现在数码相机照的相片,每一种颜色就是8位深,3种颜色就是24位,所以选8)
    支持的参数有3种,分别是 8, 16, or 32。默认值是16。
    Q8表示: 8-bits per pixel quantum
    Q16表示:16-bits per pixel quantum
    Q32表示:32-bits per pixel quantum
    使用16-bit per pixel quantums在处理图片时比8-bit慢15%至50%,并须要更多的内存。
    处理一张1024x768像素的图片8-bit要使用3.6M内存,16-bit要使用7.2M内存。计算方法是: (5 * Quantum Depth * Rows * Columns) / 8

    配置 环境变量加入PATH:E:Program FilesGraphicsMagick-1.3.18-Q8(个人习惯放在E盘)

    二. Linux下的安装与配置(下载时请注意 有32位系统包,有64位系统包,根据情况选择。这里是centos 64位的)
    1、先查看所需的包是否安装 
    rpm -q libjpeg libjpeg-devel libpng libpng-devel freetype freetype-   devel libtiff 

    先把一些图片补丁包安装。

    download地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.gz/download

    解压tar zvxf GraphicsMagick-1.3.18.tar.gz
    cd GraphicsMagick-1.3.18
    ./configure --prefix=/usr/local/GraphicsMagick --with-quantum-depth=8   --enable-share

    下载 im4java

    downlaod 地址:http://sourceforge.net/projects/im4java/?source=directory

    im4java的思路是通过线程或者进程执行graphicsmagick的命令,它的api只是为了能生成命令,而不是调用graphicsmagick的库。

    我使用的最新的jar :im4java-1.4.0-1.5.jar

    测试代码如下:

    IM4JAVA是同时支持ImageMagick和GraphicsMagick的,这里是bool值,如果为true则使用GM,如果为false支持IM。

    /**
         * 
         * @param picPath 图片路径
         * @param drawPicPath draw后的路径
         * @param width draw后的宽度
         * @param height draw后的高度
          * @throws IOException
         * @throws InterruptedException
         * @throws IM4JavaException
         */
        public static void drawImg(String picPath,String drawPicPath,int width, int height) throws IOException, InterruptedException, IM4JavaException{
            IMOperation op = new IMOperation();
            op.addImage();
            op.resize(width, height);
            op.font("Arial").fill("red").draw("text 100,100 www.taobao.com");  
            op.quality(85d);
            op.addImage();
            //IM4JAVA是同时支持ImageMagick和GraphicsMagick的,如果为true则使用GM,如果为false支持IM。
            ConvertCmd cmd = new ConvertCmd(true);
            String osName = System.getProperty("os.name").toLowerCase();    
            if(osName.indexOf("win")>=0) {  //linux下不要设置此值,不然会报错
                cmd.setSearchPath("E://Program Files//GraphicsMagick-1.3.18-Q8"); 
               }
            cmd.setErrorConsumer(StandardStream.STDERR);
            cmd.run(op, picPath , drawPicPath);
        }
        
        /**
         * 
         * @param args
         */
        public static void main(String args[]){
            try {
                drawImg("D://tester.jpg", "D://testerTwo.jpg", 300,400);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    本文转自:http://blog.csdn.net/tangpengtao/article/details/9208047

  • 相关阅读:
    编译安装mysql5.7.9
    配置阿里云作为yum 源
    python 序列类型
    python 数据类型之list
    python 数据类型之数float
    深度学习与中文短文本分析总结与梳理
    相似度的算法(欧几里德距离和皮尔逊算法)
    人工智能(Machine Learning)—— 机器学习
    python设置redis过期时间
    K-均值聚类(K-means)算法
  • 原文地址:https://www.cnblogs.com/dreammyle/p/4872628.html
Copyright © 2011-2022 走看看