/* ---=== Zmieniamy rozmiar ===--- */ $mime = $info['mime']; switch ($mime) { case 'image/jpeg': $image_create_func = 'imagecreatefromjpeg'; $image_save_func = 'imagejpeg'; $new_image_ext = 'jpg'; break; case 'image/png': $image_create_func = 'imagecreatefrompng'; $image_save_func = 'imagepng'; $new_image_ext = 'png'; break; case 'image/gif': $image_create_func = 'imagecreatefromgif'; $image_save_func = 'imagegif'; $new_image_ext = 'gif'; break; default: throw Exception('Unknown image type.'); } $img = $image_create_func("upload/avatar/$id.$extension"); $newHeight = ($height / $width) * $avatarWidth; $tmp = @imagecreatetruecolor($newWidth, $newHeight) imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); } $image_save_func($tmp, "upload/avatar/$id-change.$new_image_ext");
Ten o to kod w momencie kiedy jest po za chmodami 777 nie chce mi działać, a w momencie kiedy go dam do katalogu gdzie są obrazki to pięknie działa... Sprawdziłem to tym kodem:
<?php function resize($newWidth, $targetFile, $originalFile) { $mime = $info['mime']; switch ($mime) { case 'image/jpeg': $image_create_func = 'imagecreatefromjpeg'; $image_save_func = 'imagejpeg'; $new_image_ext = 'jpg'; break; case 'image/png': $image_create_func = 'imagecreatefrompng'; $image_save_func = 'imagepng'; $new_image_ext = 'png'; break; case 'image/gif': $image_create_func = 'imagecreatefromgif'; $image_save_func = 'imagegif'; $new_image_ext = 'gif'; break; default: throw Exception('Unknown image type.'); } $img = $image_create_func($originalFile); $newHeight = ($height / $width) * $newWidth; $tmp = imagecreatetruecolor($newWidth, $newHeight); imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); } $image_save_func($tmp, "$targetFile.$new_image_ext"); } foreach($files as $file) { resize(100, $filename, $file); } ?>
Co jest nie tak ? Sypie się jak moja była w tym momencie:
$tmp = imagecreatetruecolor($newWidth, $newHeight);
zwraca: "Cannot Initialize new GD image stream"
Pozdrawiam
