coffee_cn

博客园 首页 新随笔 联系 订阅 管理

最近发现图片格式为cmyk时,图片上传浏览器不能正常显示,图片缩放会变成黑屏,

后来通过google发现imagemagick的功能很强大,安装可以采用两种方法,1)直接与php编译安装,在程序中调用;2)直接安装,调用系统命令方式使用

为简单,我们采用了第2种,直接利用php或jsp调用convert命令实现了图片从cmyk格式转换到rgb格式:

convert.php
<?php
exec("/usr/local/bin/convert -colorspace rgb /mnt/smb/proimg_original/img_u/shop_img/89/cs01831/sregist_1259723804077.jpg /mnt/smb/proimg_original/img_u/shop_img/89/cs01831/sregist_1259723804077.jpg");
?>
php convert ok!!

convert.jsp

<%
Process process=Runtime.getRuntime().exec("/usr/local/bin/convert -colorspace rgb /mnt/smb/proimg_original/img_u/shop_img/89/cs01831/sregist_1259729432644.jpg /mnt/smb/proimg_original/img_u/shop_img/89/cs01831/sregist_1259729432644.jpg");
%>
jsp convert ok!

 

同时提供一个简单的java函数,这样方便的集成在java中:
 public static boolean cmyk2rgb(String file){
     File d = new File(file);
  if(d.isDirectory()){
      try{
       String[] commands = {"/bin/sh", "-c", "/usr/local/bin/convert -colorspace rgb " + file + " " + file};
       Process process = Runtime.getRuntime().exec(commands);
       process.waitFor();
       return true;
      }catch(Exception e){
       e.printStackTrace();
       return false;
      }
  }
     return true;
    }

 

posted on 2009-12-02 13:15  coffee  阅读(547)  评论(0编辑  收藏  举报