最近發現圖片格式為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;
}