2009-11-27 43 views
0

在我有我的主要圖像的文件夾中,我需要一些代碼在PHP中讀取文件夾中的所有圖像,並調整它沒有擠壓或使用php strech,並將調整大小的圖像放在目標文件夾。使用php調整圖像的尺寸或用strech進行調整?

感謝

+0

如果你的意思是調整到你想要不作任何改變的寬度和高度,只是忘了..你得到的是通過調整relativelly至寬度或高度mantaining方面無線電最好的,(幾乎)從來都... – yoda 2009-11-27 18:12:28

+0

但一些網站如何調整他們的圖像作爲一個固定的大小,它是像huffingtonpost.com他們有一些小尺寸74x58請看。 – Kaveh 2009-11-28 12:15:11

回答

0

由百分之調整寬度和高度:

newwidth =寬*百分之%

newheight =身高*百分之%

如果你需要一個給定的寬度newwidth例如,然後計算newwidth/width * 100的百分比,並根據得到的百分比計算高度,如上所述。

2

ImageCreateFromJPEG打開你的圖片,用ImageCreateTrueColor創建一個新的空白圖像,並將原始圖像的ImageCopyResampled的內容複製到新的圖像。您可以使用imageJPEG保存。就像這樣:

 
<?php 
$imageInfo = getImageSize('image.jpg'); 
$imageWidth = $imageInfo[0]; 
$imageHeight = $imageInfo[1]; 
$thumbWidth = round($imageWidth/2); 
$thumbHeight = round($imageHeight/2); 

$gdImage = imageCreateFromJPEG('image.jpg'); 
$gdThumb = imageCreateTrueColor($thumbWidth, $thumbHeight); // thumbnail size here 

imageCopyResampled($gdThumb, $gdImage, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imageWidth, $imageHeight); 
imageJPEG($gdThumb, 'image_thumb.jpg', 80); 

imageDestroy($gdImage); 
imageDestroy($gdThumb); 
?> 
+0

謝謝,但首先我必須從maif文件夾讀取然後寫入目標文件夾,我喜歡這個過程是在一個腳本中,所以如果我有500個圖像在文件夾中,然後執行目標文件夾中的代碼我有500調整大小,如果你寫這部分代碼我很感激。 – Kaveh 2009-11-28 00:52:14

+0

執行一次執行許多文件的問題是php的默認最大執行時間爲30秒(?)。所以你不能以這種方式在一次運行中創建所有圖像。解決這個問題的一個好方法是每次運行只能運行5或10個文件,並讓腳本運行多次(或者使用cronjob)。 您可以使用'readdir'函數從一個目錄中讀取文件(請參閱手冊中的示例)。我建議你先在存儲文件名的地方創建一些數據庫或文本文件,並在每次運行腳本時更新該文件。 – poke 2009-11-30 12:41:31