composite -dissolve 30 -gravity center log.png input.jpg out.jpg
一、ImageMagick原作者建議以該說明頁為了解的開始,包含了大部份會問的問題。
1. http://www.cit.gu.edu.au/~anthony/graphics/imagick6/。
2. 實作時可先試 command line的結果,再跟透夠api的是否相同。
3. http://www.cit.gu.edu.au/~anthony/icons/ 常用的command line examples不過不太更新了,兩個較好的Directores large & dragons。
4. command line 的下法如同unix下:讀圖前先下operator。
command [options] input_image output_image。
command [options] image1 [options] image2 [options] output_image。
5. convert eye.gif news.gif -append storm.gif tree.gif +append output.gif
eye.gif、news.gif 合成 image1, image1、storm.gif、tree.gif 再合成 output.gif
6. mogrify -format jpg ...convert_options... *.png
會將 .jpg 檔,都batch轉成 .png檔。
7. Montage -- generating arrays of thumbnails
收集成小圖的陣列。
8. Composite -- overlaying images in special ways
多張圖片合成一張。
composite overlay background [mask] [-compose {operator}] output。
9. convert –list
列出所有參數功能說明。
10. convert -list type
列出本機所有可使用的字型。
11. 將圖片加上浮水印的command line
加浮水印command line
浮水印參數 透明度 logo位置參數 位置 要加的logo 被加的image 合成後的圖
composite -watermark 50% -gravity south logo_udn.jpg M3340.jpg ww.jpg
同上的效果
composite -dissolve 50% -gravity south logo_udn.jpg M3340.jpg ww.jpg
用logo填滿底
composite -dissolve 50 -tile -gravity south logo_udn.jpg M3340.jpg ww.jpg
將logo填入顏色(會使圖變案,不適用在深色圖)
convert wmark_image.png -fill '#E8E8E8' -colorize 80 miff:- | composite -compose bumpmap -gravity south - logo.jpg wmark_bumpmap.jpg
跟上面比,較不會使圖變黑,建議使用 dissolve 來加浮水印
convert wmark_image.png -fill grey50 -colorize 40 miff:- |\
composite -dissolve 30 -gravity south - logo.jpg wmark_dissolve_grey.jpg
12. identify verbose test.png(看圖片資訊)
13. identify -list format(所有支援的格式)
14. 透夠 Jmagick的java介面呼叫imagemagick產生浮水印
- String original_filename = "E:\\MyProject\\JMagick604\\waterold.jpg";
- String watermark_filename = "E:\\MyProject\\JMagick604\\logo_udn.jpg";
- String result_filename = "E:\\MyProject\\JMagick604\\wateradd0629.jpg";
- try
- {
- ImageInfo ii_orig = new ImageInfo();
- ii_orig.setFileName(original_filename);
- MagickImage mi_orig = new MagickImage(ii_orig);
- ImageInfo ii_wm = new ImageInfo();
- ii_wm.setFileName(watermark_filename);
- MagickImage mi_wm = new MagickImage(ii_wm);
-
- QuantizeInfo quantizeInfo = new QuantizeInfo();
- quantizeInfo.setColorspace(ColorspaceType.GRAYColorspace);
- quantizeInfo.setNumberColors(2);
- quantizeInfo.setTreeDepth(3);
- mi_wm.quantizeImage(quantizeInfo);
-
- mi_wm.transparentImage(PixelPacket.queryColorDatabase("black"), Integer.MAX_VALUE - 4000);
- mi_wm.transparentImage(PixelPacket.queryColorDatabase("white"), Integer.MAX_VALUE -500 );
- mi_orig.setMagick("JPG");
- mi_orig.setCompression(CompressionType.JPEGCompression);
- final ImageInfo newInfo = new ImageInfo();
- mi_orig.setFileName(result_filename);
- mi_orig.writeImage(newInfo);
- mi_orig.destroyImages();
- mi_wm.destroyImages();
- } catch (MagickException me) {}
二、測試環境
WinXp sp2、sdk1.4.2、tomcat5.0.28。
三、在 Windows 下安裝 ImageMagick
到 http://www.imagemagick.org/ 下載 Windows Executable 版本。 (建議下載 Stable 穩定版本)ImageMagick-6.2.2-0-Q16-windows-dll.exe。
安裝下載回來的 ImageMagick-x.x.x-xxx-windows-dll.exe ,建議安裝在 C:\Program Files\ 以外的資料夾。另外安裝時也請勾選 Update executable search path ,以讓系統可以找到 ImageMagick 執行檔的位置;其他用不到的選項可以不勾選。
安裝完成後,請到安裝目錄下,將 ImageMagick 的 convert.exe 前面加上 im_ ,變成 im_convert.exe 。因為 Windows (XP) 本身已經有個叫 convert.exe 的檔案,改名後可避免與其發生衝突。打開 regedit.exe ,搜尋 convert.exe ,找到 [ImageMagick 安裝目錄]\convert.exe 的登錄值,將其改名為 im_convert.exe ,或刪除該登錄值。 (應該只有一個 AutoRun 的登錄值)使用方式如同原作者所著,僅需修改執行目錄及 convert 名稱即可。將 jmagick.dll 放置在C:\WINDOWS\system32 下。
四、安裝Jmagick
至http://www.yeo.id.au/jmagick/ 下載最新6.0.4。(需配合imagemagick)將source使用eclipse 重新compile後打包成 jar檔。Jmagick中的magick. MagickLoader會load系統中的jmagick.dll使用。如此即可使用Jmagick所含的測試檔 test.test 測試產生相關的檔案。
五、使用 eclipse測試
使用Jmagick所含的測試檔 test.test.java 測試產生相關的圖檔。
六、windows下 tomcat的設定
將 jmagick.jar 放置專案下的 WEBINF/lib 目錄下。webapp下程式需初始化System.setProperty("jmagick.systemclassloader","no")。將 jmagick.dll 放置 system32下。
(zorru) |