天天看點

圖檔處理的常用三種方法

 MagickImage大家可能都用過,它主要處理一些圖檔,它可以處理90多種的圖檔類型.它的功能非常強大,而我們在實際的應用中,主要用到它的縮放,截取,複制功能。其他的一些如寫入文字,加背景色,旋轉。。。用的少。 

    第一個常用的功能縮放(scaleImage)。

    首先初始化一個ImageInfo對象,就是加載要處理的圖檔路徑.

    ImageInfo info= new ImageInfo(“F:\\images\\1.jpg”); 

    然後再把圖檔資訊ImageInfo作為構造MagickImage的參數傳入。 MagickImage 是處理圖檔的主要類。                                                                                                   

    MagickImage image= new MagickImage(info);

    再對MagickImage的對象選取方法。進行縮放。scaleImage(w, h),第一個參數指按比例縮放後的寬度,第二個就是高度了。

    MagickImage cropped= image .scaleImage(40, 80);

    最後把處理完的圖檔命名(1_scale.jpg)存放到指定的目錄下(F:/images)。

    cropped.setFileName("F:\\images\\1_scale.jpg");

    writeImage指定源圖檔的ImageInfo 對象。

    cropped.writeImage(info);

    這樣就簡單的把原來的圖檔縮放成40X80的1_scale.jpg新圖檔了。

    第二個常用的功能縮放(cropImage)。

    再初始化一個合适的寬度和高度,以及起始坐标。就是要處理後圖檔的大小形狀(矩形)。

    Rectangle rect = new Rectangle(x, y, 40, 80);

    x,y就是起始點的坐标,一般從圖檔的左上角開始,預設為0.w,h就是實際的寬度和高度了,不是按比例截取後的寬度和高度。

    這一點與上面的不同。

    再對MagickImage的對象選取方法。進行實際大小的截取。cropImage(rect),參數指圖檔的範圍。

    MagickImage cropped = image.cropImage(rect);

    最後把處理完的圖檔命名(1_crop.jpg)存放到指定的目錄下(F:/images)。

    cropped.setFileName("F:\\images\\1_crop.jpg");

    這樣就簡單的把原來的圖檔截取成40X80的1_crop.jpg新圖檔了。原圖檔的規格一定大于40X80,要不然截取的有空白了。自己試試就知道了。   

    最後一個常用的功能複制了(copy),這個最簡單了。

    然後再把圖檔資訊ImageInfo作為構造MagickImage的參數傳入。 MagickImage 是處理圖檔的主要類。                                                                                                    

    最後把處理完的圖檔命名(1_copy.jpg)存放到指定的目錄下(F:/images)。

    image.setFileName("F:\\images\\1_copy.jpg");

    image.writeImage(info);

    這個沒有用到(cloneImage)方法,簡單的了解為改變圖檔的存放路徑就可以了,這樣就很輕松的實作了copy了,比它自帶的cloneImage簡單多了。

本文轉自 weijie@java 51CTO部落格,原文連結:http://blog.51cto.com/weijie/74911,如需轉載請自行聯系原作者