我想弄清楚imgur.com是如何構建他們的畫廊(在右邊的主頁上的)。PHP圖像處理
我的問題是,我想從圖像中創建縮略圖庫,但我希望寬高比正確,使圖像看起來不奇怪。
因此,我不能只是採取上傳的圖像,並將比例不同的高度和寬度更改爲100px/100px。
他們裁剪圖像,然後創建一個縮略圖?他們如何裁剪?他們如何設定作物比例?
感謝,
我想弄清楚imgur.com是如何構建他們的畫廊(在右邊的主頁上的)。PHP圖像處理
我的問題是,我想從圖像中創建縮略圖庫,但我希望寬高比正確,使圖像看起來不奇怪。
因此,我不能只是採取上傳的圖像,並將比例不同的高度和寬度更改爲100px/100px。
他們裁剪圖像,然後創建一個縮略圖?他們如何裁剪?他們如何設定作物比例?
感謝,
計算縮略圖大小...
$sizes = getimagesize('img.jpg');
$w = $sizes[0];
$h = $sizes[1];
$new_w = 200; // some value
$new_h = $h * ($new_w/$w);
http://www.php.net/manual/en/function.getimagesize.php
另外,如果您想裁剪圖像,使用一些PHP庫。我建議WigeImage。它的docs寫得很好,它提供了簡單的裁剪,調整大小,鏡像,旋轉等。:)
請注意,WideImage和PHP文檔中記錄的其他圖像功能需要GD擴展安裝在您的服務器上。
在本地計算機上安裝imagick和玩它,它可以做所有你問的。對於X或Y是如何做這件事並沒有什麼幫助,因爲每種技術都有不同的表現,在PHP(你選擇的標籤)中,你可以用imagick做到這一點。
這可以很容易地使用內置的方法在ImageArtist這是一個純粹的OO包裝。
在Imagick上使用GD的優勢在於GD擴展受到各種主機提供商的支持,因此您的代碼在本地大部分時間都可以正常工作,並且在託管之後可以正常工作。
這裏是一個示例代碼。
$img = new Image("./cover.jpg");
$img->scaleToWidth(100); // make the width 100px and make sure to resize height accroding to the ratio
$img->scaleToHeight(100); // make the hegith 100px and make sure to resize width accroding to the ratio
/* if you want to crop the image */
$img->crop(5,5,90,90); // this will crop a rectangle keeping 5px border
/* finally save it */
$img2->save("./final.png",IMAGETYPE_PNG);
也許你應該提到這是一個php gd函數! – markus 2011-05-02 12:56:44
它不需要gd庫,至少docs狀態是... – usoban 2011-05-02 13:03:23
真的,不知道,我的壞。 – markus 2011-05-02 13:04:37