imagecopyresized () неверные размеры изображения? - PullRequest
2 голосов
/ 20 января 2012

Я получаю следующую ошибку при попытке создать миниатюру изображения:

Warning: imagecopyresized() [function.imagecopyresized]: Invalid image dimensions in H:\Programs\webserver\root\media\images\inc\func.php on line 160

Это функция, которую я создал для выполнения задания:

function create_thumbnail($image_type, $image_height, $image_height, $temp_dir, $thumb_path, $thumb_width, $thumb_height){
    switch($image_type){
        case 'image/jpeg';
            $img =      imagecreatefromjpeg($temp_dir);
            $thumb =    imagecreatetruecolor($thumb_width, $thumb_height);
                        imagecopyresized($thumb, $img, 0, 0, 0, 0, $thumb_width, $thumb_height, $image_width, $image_height);
                        imagejpeg($thumb, $thumb_path, 100);


        break;
        case 'image/png';
            $img =      imagecreatefrompng($temp_dir);
            $thumb =    imagecreatetruecolor($thumb_width, $thumb_height);
                        imagecopyresized($thumb, $img, 0, 0, 0, 0, $thumb_width, $thumb_height, $image_width, $image_height );
                        imagepng($thumb, $thumb_path, 100);

        break;
        case 'image/gif';
            $img =      imagecreatefromgif($temp_dir);
            $thumb =    imagecreatetruecolor($thumb_width, $thumb_height);
                        imagecopyresized($thumb, $img, 0, 0, 0, 0, $thumb_width, $thumb_height, $image_width, $image_height );
                        imagegif($thumb, $thumb_path, 100);

        break;
    }

}

используется следующим образом:

// Create the new thumbnail dimensions
                        list($thumb_width, $thumb_height) = thumb_dimensions($case, $image_width, $image_height);

                        // Create the thumbnails
                        create_thumbnail($image_type, $image_height, $image_height, $temp_dir, $thumb_path, $thumb_width, $thumb_height);

Размеры большого пальца: ширина: 100 пикселей, высота: 99 пикселей;

1 Ответ

4 голосов
/ 20 января 2012

Опечатка в определении функции:

function create_thumbnail($image_type, $image_height, $image_height, ...
                                           ^^------dupe----^^

, что означает $image_width, не определено и, вероятно, будет равно 0.

То же самое относится и к вашему примеру create_thumbnail() вызов в конце - два image_heights, без image_width.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...