亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php下嘗試使用GraphicsMagick的縮略圖功能

 更新時間:2011年01月01日 23:01:45   作者:  
現(xiàn)在,對一個Web程序員來說,圖像處理已經(jīng)屬于必會知識之一了。且不說Flickr,Yupoo等專業(yè)圖片分享網(wǎng)站,就算是一個和圖片分享不沾邊的網(wǎng)站,也會用到很多圖片處理的功能,比如說:用戶上傳頭像,然后自動生成縮略圖。
常用的圖片處理工具有GD,ImageMagick,GraphicsMagick等等。GD就是個阿斗,略過不提;ImageMagick是目前最流行的圖片處理工具,它的功能非常豐富;GraphicsMagick的功能略遜于ImageMagick,但是它的效率更強悍,就好比Apache和Nginx一樣,一個功能更強,一個效率更勝。

現(xiàn)在更看重效率,所以本文就以GraphicsMagick為例來說說:

對于PHPer來說,有兩種使用GraphicsMagick的方式:

1:使用PECL Gmagick擴展。
2:使用GraphicsMagick命令行。

PECL擴展的方式我并不喜歡,一來PECL代碼Bug多多,二來PECL擴展的實現(xiàn),代碼寫起來很羅嗦:比如縮放一個GIF動畫圖片,如果你用命令行的方式,一句話就搞定,而用PECL擴展的話,還得先算動畫有幾幀,再循環(huán)處理,很麻煩。所以說我更傾向于使用命令行的方式,雖然命令行操作聽起來很“重”,但如果建立若干臺圖片服務器,通過Gearman連接起來,其實很是很有彈性的。

下面我們就以GraphicsMagick為例,采用命令行的方式來看看如何使用縮略圖功能:

先上一個原始圖片(input.jpg:160x120),以后的各個例子都會用到它:



BTW:列位看官現(xiàn)在可以咽口水了。

縮略圖1

gm convert input.jpg -thumbnail '100x100' output_1.jpg



實際生成的圖片大小是:100x75,也就是說說按此命令,會保持圖片比例不變生成縮略圖。這樣很不錯,但是有一個潛在的問題:我們不能簡單明了的知道圖片的最終大小,結果是前端顯示的時候,無法設置img標簽的width和height屬性,如果我沒記錯的話,一般是推薦設定width和height屬性的,否則瀏覽器渲染起來可能會稍稍慢一點。

縮略圖2

gm convert input.jpg -thumbnail '100x100!' output_2.jpg



這次
實際生成的圖片大小按定義來,但圖片變形了,有時候這是不能接受的。

縮略圖3


gm convert input.jpg -thumbnail '100x100^' \
-gravity center -extent 100x100 output_3.jpg



這次不僅保證了大小,還保證了比例。不過圖片經(jīng)過了裁剪。

縮略圖4

gm convert input.jpg -thumbnail '100x100' \
-background gray -gravity center -extent 100x100 output_4.jpg



這次不僅保證了大小,還保證了比例,同時沒有對圖片進行任何裁剪,多余的部分按指定顏色進行填充。

縮略圖5

gm convert input.jpg -thumbnail '10000@' \
-background gray -gravity center -extent 100x100 output_5.jpg



這次保證了大小和比例,其中的10000就是100x100的乘積,同時在填充和裁剪之間做了一個平衡。


明白了以上幾個例子,縮略圖基本就能通吃了,肯定有一種會適合你的需求。GraphicsMagick的資料非常少,但好消息是GraphicsMagick和ImageMagick的用法基本兼容,所以你可以通過
ImageMagick的資料來套用。

補充:如果想讓用戶手動裁剪頭片的話,imgAreaSelect是個好選擇。

相關文章

  • PHP使用memcache緩存技術提高響應速度的方法

    PHP使用memcache緩存技術提高響應速度的方法

    這篇文章主要介紹了PHP使用memcache緩存技術提高響應速度的方法,以實例形式分析了memcache緩存技術的使用技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • php使用Jpgraph創(chuàng)建柱狀圖展示年度收支表效果示例

    php使用Jpgraph創(chuàng)建柱狀圖展示年度收支表效果示例

    這篇文章主要介紹了php使用Jpgraph創(chuàng)建柱狀圖展示年度收支表效果,結合完整實例形式分析了Jpgraph創(chuàng)建柱狀圖的具體步驟與操作技巧,需要的朋友可以參考下
    2017-02-02
  • 新安裝的MySQL數(shù)據(jù)庫需要注意的安全知識

    新安裝的MySQL數(shù)據(jù)庫需要注意的安全知識

    在你自己安裝了一個新的MySQL服務器后,你需要為MySQL的root用戶指定一個目錄(缺省無口令),否則如果你忘記這點,你將你的MySQL處于極不安全的狀態(tài)(至少在一段時間內)。
    2008-07-07
  • php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence錯誤的處理方法

    php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence錯誤的處理方法

    在利用php解析xml時提示Invalid byte 1 of 1-byte UTF-8 sequence錯誤了,這個問題我百度查實說是編碼問題,結果我把編碼處理一下果然KO了,下面我來分享一下解決辦法
    2013-11-11
  • PHP四大安全策略

    PHP四大安全策略

    這篇文章主要介紹了PHP中的文件系統(tǒng)安全、數(shù)據(jù)庫安全、用戶數(shù)據(jù)安全等安全相關的問題,需要的朋友可以參考下
    2014-03-03
  • PHP 數(shù)組基本操作小結(推薦)

    PHP 數(shù)組基本操作小結(推薦)

    下面小編就為大家?guī)硪黄狿HP 數(shù)組基本操作小結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 使用PHP的日期與時間函數(shù)技巧

    使用PHP的日期與時間函數(shù)技巧

    任何一種語言,日期和時間函數(shù)都是我們常使用的,下面就教你PHP下的日期和時間的技巧
    2008-04-04
  • php腳本守護進程原理與實現(xiàn)方法詳解

    php腳本守護進程原理與實現(xiàn)方法詳解

    這篇文章主要介紹了php腳本守護進程原理與實現(xiàn)方法,較為詳細的分析了php腳本守護進程的實現(xiàn)思路、原理、格式及具體實現(xiàn)方法,需要的朋友可以參考下
    2017-07-07
  • PHP處理bmp格式圖片的方法分析

    PHP處理bmp格式圖片的方法分析

    這篇文章主要介紹了PHP處理bmp格式圖片的方法,結合具體實例形式分析了PHP操作bmp格式圖片的相關函數(shù)與使用技巧,需要的朋友可以參考下
    2017-07-07
  • 使用ucenter實現(xiàn)多站點同步登錄的講解

    使用ucenter實現(xiàn)多站點同步登錄的講解

    今天小編就為大家分享一篇關于使用ucenter實現(xiàn)多站點同步登錄的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論