2009-11-27 46 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