最近发现图片格式为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;
}