Рыжий |
Дата 17.6.2007, 19:25 (ссылка)
  |   (голосов:1)
Загрузка ...
|
|
|

Помешанный
  
Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004
Репутация: нет Всего: 20
|
Всем привет! Думал над этой задачей уже долгое время, код то работает, то нет Что за странности? Гляньте пожалуйста может я ошибся где... Действительно уже не знаю что делать :( Надеюсь кто нибудь поможет. Задача была такой - взять изображения из директории (../admin_image), уменьшить их и скопировать в другую (../admin_image/made).
Код | $files = scandir_('../admin_image');
$cnt_files=(count($files)-3); // -3 это: . , .. и made
if($cnt_files==0) echo "Нет изображений для обработки";
else{
require 'functions.php';
for($i=0;$i<count($files);$i++){ if ($files[$i] != "." && $files[$i] != ".." && $files[$i]!=="made") {
if(substr(strtolower($files[$i]),-3)!=='jpg') { echo "Файл должен иметь расширение JPG. <br /> Файл <b>".$files[$i]."</b> не скопирован!<br /><br />"; } else{
$tme=explode(' ',microtime()); $tme=explode('.',$tme[0]); $image_add=$tme[1].".jpg"; $image_sm_add="sm_".$tme[1].".jpg";
echo "<br />Копируем ../admin_image/".$files[$i]." в ../admin_image/made/".$image_add."<br />"; if(@copy('../admin_image/'.$files[$i],'../admin_image/made/'.$image_add)){
if(!@small('../admin_image/made/'.$image_add , '../admin_image/made/'.$image_sm_add ,500 , 80)) {echo "Не смог создать маленького изображения".$image_sm_add; $err=true;} else echo "Уменьшенная копия создана!";
if(!unlink ('../admin_image/'.$files[$i])) {echo "Не смог удалить файл".$files[$i]; $err=true;} $image_add=0; $image_sm_add=0; } else echo "Не смог скопировать файл".$image_add."<br/>"; }
} } if(!$err) echo "Все операции успешно завершены!"; }
|
Все файлы в директории формата jpg все четко и красиво я проверял. А вот функция small:Код | function small($filename, $smallimage, $w, $h) { // определим коэффициент сжатия изображения, которое будем генерить $ratio = $w/$h; // получим размеры исходного изображения $size_img = getimagesize($filename); // получим коэффициент сжатия исходного изображения $src_ratio=$size_img[0]/$size_img[1];
//Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились //пропорции исходного изображения if ($ratio<$src_ratio or $size_img[1]>$h or $size_img[0]>$w) { $h = $w/$src_ratio; } elseif($size_img[1]<$h or $size_img[0]<$w) { $w = $size_img[0]; $h = $size_img[1]; } // создадим пустое изображение по заданным размерам $dest_img = imagecreatetruecolor($w, $h);
$src_img = imagecreatefromjpeg($filename);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]); imagejpeg($dest_img, $smallimage);
imagedestroy($dest_img); imagedestroy($src_img); return true; }
|
В основном останавливается на создании маленького изобржаения. Причем проблемы только на сервере на локалке - все ОК. Что делать - незнаю :( (На сервере стоит PHP 4.3.11 на локалке PHP 5.2.1)
|
|
|
|