最近發現圖片格式為cmyk時,圖片上傳浏覽器不能正常顯示,圖片縮放會變成黑屏, 後來通過google發現imagemagick的功能很強大,安裝可以采用兩種方法,1)直接與php編譯安裝,在程序中調用;2)直接安裝,調用系統命令方式使用
為簡單,我們采用了第2種,直接利用php或jsp調用convert命令實現了圖片從cmyk格式轉換到rgb格式:
convert.php
Copy to Clipboard引用的內容:[www.bkjia.com]
<?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
Copy to Clipboard引用的內容:[www.bkjia.com]
<%
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中:
Copy to Clipboard引用的內容:[www.bkjia.com]
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;
}
出處:http://www.cnblogs.com/coffee_cn/