久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ImageMagick+ PHP IMagick 圖片壓縮處理

 逸☆香 2014-03-18
當(dāng)服務(wù)器遭遇高并發(fā)和大訪問量時(shí),,對(duì)站點(diǎn)資源比如圖片瘦身的需求會(huì)有所迫切,。search了一下解決方案,,希望可以拋磚,。此blog在Amazon EC2 Instance部署測(cè)試成文,。

一,、簡(jiǎn)介
二,、安裝
三,、使用
四,、壓縮
五、資源

======一,、ImageMagick,、IMagick簡(jiǎn)介======
ImageMagick是用C語言開發(fā)圖片處理程序??梢詫?duì)圖片進(jìn)行改變大小,、旋轉(zhuǎn)、銳化,、減色或增加特效等操作,。對(duì)圖片的操作,即可以通過命令行進(jìn)行,也可以用C/C++,、Perl,、Java、PHP,、Python或Ruby編程來完成,。
ImageMagick 的官網(wǎng)是:http://www.ImageMagick.org/script/index.php
ImageMagick為php語言提供的兩個(gè)擴(kuò)展IMagick和MagickWand for PHP的安裝。IMagick已經(jīng)被php最新的版本選為內(nèi)部的擴(kuò)展函數(shù)庫,,php的手冊(cè)已經(jīng)有了函數(shù)說明使用文檔,。這個(gè)擴(kuò)展是可選安裝的。
ImageMagick有兩款接口,,分別是MagickCore API和MagickWand API,。MagickCore API是全面的底層的接口,而MagickWand API 是官方推薦的精選的重要的一些接口,。IMagick和MagickWand for PHP就是分別為這兩款接口而準(zhǔn)備的,。
IMagick:
一個(gè)可以供PHP調(diào)用ImageMagick功能的PHP擴(kuò)展。使用這個(gè)擴(kuò)展可以使PHP具備和ImageMagick相同的功能,。

======二,、安裝======
》 安裝make
   $ yum install make
》 安裝gcc
   $ yum install gcc

1、安裝ImageMagick
   $ cd /opt/
   $ tar zvxf ImageMagick-6.7.5-6.tar.gz
   $ cd ImageMagick-6.7.5-6
   $ ./configure 
   $ make
   $ make install
2,、命令行縮放一張圖片
   $ /usr/local/bin ./convert -resize 200x200 -colors 100 src.jpg tar.jpg
   PS:報(bào)錯(cuò)了,。錯(cuò)誤信息:no decode delegate for this image format.

   查看convert支持處理的格式
   $ convert -list format

   PS:
     》服務(wù)器如果沒有安裝Jpeg v6b、libPng,、FreeType要在安裝imagemagick之前先裝好,,否則imagemagick沒法讀取jpeg和png圖片,字體文件也讀不了,。而安裝libpng需要zlib的支持,。所以先由安裝zlib為開始。(抱歉,,只能重新執(zhí)行4-5-6-1了,。)
     》libpng 使用 zlib 程序庫作為壓縮引擎,zlib 也是著名的 gzip (GNU zip) 所采用的壓縮引擎

3,、安裝IMagick
   $ tar zvxf imagick-3.0.1.tgz
   $ cd imagick-3.0.1
   $ phpize
   $ ./configure 
   $ make
   $ make install

   PS: make的時(shí)候報(bào)錯(cuò)咯...下了最新包的同學(xué),,請(qǐng)降低imagick安裝版本。如:IMagick-2.3.0.tgz,。

   錯(cuò)誤信息
   imagick-3.0.1/imagick_class.c:9673: error: expected ';' before 'severity'
   imagick-3.0.1/imagick_class.c:9673: error: 'php_imagick_object' has no member named 'magick_wand'
   imagick-3.0.1/imagick_class.c:9673: error: 'severity' undeclared (first use in this function)
   imagick-3.0.1/imagick_class.c:9673: warning: assignment makes pointer from integer without a cast
   imagick-3.0.1/imagick_class.c:9673: warning: cast to pointer from integer of different size
   imagick-3.0.1/imagick_class.c:9673: warning: cast to pointer from integer of different size
   imagick-3.0.1/imagick_class.c:9673: error: 'php_imagick_object' has no member named 'magick_wand'
   make: *** [imagick_class.lo] Error 1

4,、安裝zlib
   $ tar -xzvf zlib-1.2.5.tar.gz 
   $ cd zlib-1.2.5
   $ ./configure
   $ make
   $ make install

5、編譯安裝libpng
   $ tar -xzvf libpng-1.2.12.tar.gz
   $ cd libpng-1.2.12
   $ cp scripts/makefile.std makefile
   $ make
   $ make install

6,、編譯安裝 jpeg-6b
   $ ./configure --enable-shared --enable-static 
   $ make
   $ make install
   ,。,。。
   Ps:又出錯(cuò)了?。,。annot create regular file `/usr/local/man/man1/cjpeg.1': No such file or directory,,按照提示做吧,!
7、別忘記在php.ini把擴(kuò)展配置上去
 ImageMagick+ PHP IMagick 圖片壓縮處理 - VIEWSOFT - Rainbow Tech Blog

======三,、ImageMagick使用======
這里只是介紹圖片壓縮這一點(diǎn)領(lǐng)域,,其余的圖片處理請(qǐng)research其它資源。
》 壓縮jpg圖像體積
  $ cd /usr/local/ImageMagick/bin/
  $ ./convert -quality 20 /tmp/test/jpg_src.jpg /tmp/test/jpg20.jpg
  壓縮前:(約230k)
  壓所后:(約70k)
  在圖片質(zhì)量尚可的情況下,,體積減小了將近3/4!這對(duì)于大訪問量和高并發(fā)情況下圖片加載速度以及服務(wù)器流量的意義非常重大,。
》 壓縮png圖片體積
  $ ./convert -map netscape: +profile "*" /tmp/test/png_src.png /tmp/test/c_png_src.png
  壓縮前:(約89k)
  壓所后:(約47k)
  在圖片質(zhì)量尚可的情況下,體積減小了將近1/2!但是對(duì)png圖片透明背景的處理不盡如人意,。

======三、php_IMagick使用======
》壓縮jpg圖片
  /******************code******************/
    $imgObject = new Imagick("src.jpg");
    // 去除圖片信息
    $imgObject->stripImage();
    // 設(shè)置壓縮比率
    $imgObject->setImageCompressionQuality($q);
    $imgObject->writeImage("compress.png");
    $imgObject->destroy();
  /******************code******************/

》壓縮png圖片
  /******************code******************/
    $imgObject = new Imagick("src.png");
    // 去除圖片信息
    $imgObject->stripImage();
    $flag = $imgObject->getImageAlphaChannel();
    // 如果png背景非透明,,則進(jìn)行壓縮
    if(imagick::ALPHACHANNEL_UNDEFINED == $flag||imagick::ALPHACHANNEL_DEACTIVATE == $flag) {
    $imgObject->setImageType(imagick::IMGTYPE_PALETTE);
    $imgObject->writeImage("compress.png);      
    }
    $imgObject->destroy();
  /******************code******************/

======五,、資源-幫助文檔======
》ImageMagick官網(wǎng)
  http://www.ImageMagick.org/script/index.php
》英文文檔:
  http://www./manual/en/class.IMagick.php
》中文文檔:
  http://cn./manual/zh/class.IMagick.php

=======五、資源-lib src======
》ImageMagick(ImageMagick-6.7.5-6.tar.gz) download
  ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.7.5-6.tar.gz
  可以在 ftp://ftp.kddlabs.co.jp/graphics/ImageMagick找到合適的版本,。
》IMagick lib download
  http://pecl./get/IMagick-2.3.0.tgz
》jpeg lib download
  http://www./files/jpegsrc.v6b.tar.gz
》png lib
  http:///projects/libpng/files/libpng12/1.2.47/libpng-1.2.47.tar.gz/download
》zlib download
  http:///projects/libpng/files/zlib/1.2.3/zlib-1.2.3.tar.gz/download

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多