загрузчик конвертировать любой формат изображения в изображение JPG

0

работая над загрузчиком и добавляя к нему оператор switch для преобразования любых изображений.png,.gif,.bmp в jpg.

Но, похоже, это не работает, может ли кто-нибудь объяснить мне вопрос о том, почему он проходит через коммутатор, а стиль поддерживает формат файла как.gif или png?

<?php

if (isset($_POST['addpart']))
    {
    $image = $_FILES['images']['tmp_name'];
    $name = $_POST['username'];
    $i = 0;
    foreach($image as $key)
        {
        $fileData = pathinfo(basename($_FILES["images"]["name"][$i]));
        $fileName[] = $name . '_' . uniqid() . '.' . $fileData['extension'];
        move_uploaded_file($key, "image/" . end($fileName));
        copy("image/" . end($fileName) , "image_thumbnail/" . end($fileName));
        $images = "image_thumbnail/" . end($fileName);
        $new_images = "image_thumbnail/" . end($fileName);
        $width = 100; //*** Fix Width & Heigh (Autu caculate) ***//
        $size = GetimageSize($images);
        $height = round($width * $size[1] / $size[0]);

        switch ($size[2])
            {
        case IMAGETYPE_GIF:
            $images_orig = imagecreatefromgif($images);
            break;

        case IMAGETYPE_JPEG:
            $images_orig = imagecreatefromjpeg($images);
            break;

        case IMAGETYPE_PNG:
            $images_orig = imagecreatefrompng($images);
            break;

        default:
            die("Unknown filetype");
            }

        //$images_orig = imagecreatefromjpeg($images);
        $photoX = ImagesX($images_orig);
        $photoY = ImagesY($images_orig);
        $images_fin = ImageCreateTrueColor($width, $height);
        ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width + 1, $height + 1, $photoX, $photoY);
        ImageJPEG($images_fin, $new_images);
        $i++;
        }

    echo 'Uploaded<br />';
    echo 'Main Image - ' . $fileName[0] . '<br />';
    echo 'Extra Image 1 - ' . $fileName[1] . '<br />';
    echo 'Extra Image 2 - ' . $fileName[2] . '<br />';
    echo '<hr>';
    }

?>
  • 0
    Почему вы передаете $size в оператор switch и ожидаете IMAGETYPE ?
  • 0
    @B-and-P: B-and-P: $ size - это массив, а $ size [2] - константа типа изображения PHP, например IMAGETYPE_GIF. Эта часть должна работать.
Показать ещё 13 комментариев
Теги:
converter
upload
jpeg

1 ответ

1

Спасибо за всю помощь, которую каждый дал этому загрузчику.

Эти функции

  • компактный код
  • уникальный идентификатор файла
  • номера файлов с шагом +1, начиная с 1 в качестве первого файла
  • может добавить к нему слово infront, например, имя пользователя сеанса или
    имя
  • может добавить столько файлов, сколько необходимо
  • конвертирует изображения в jpg как в исходном формате, так и в новую версию большого пальца.
  • большой палец может установить максимальную ширину, а высота становится пропорциональной, чтобы она не искажалась
  • 2 разных каталога для разделения большого пальца и оригинала
  • могут захватывать данные изображения, поэтому их можно легко вставить в базу данных.

Вот окончательный код, это полезный фрагмент для любого тела, которое хочет разорвать его на части.

<?php
if (isset($_POST['addpart'])) {
    $image = $_FILES['images']['tmp_name'];
    $name  = $_POST['username'];
    $i     = 0;
    $i2    = 1;
    $id    = uniqid();
    foreach ($image as $key) {
        $fileData   = pathinfo(basename($_FILES["images"]["name"][$i]));
        $fileName[] = $name . '_' . $id . '_' . $i2 . '.' . $fileData['name'] . 'jpg';
        move_uploaded_file($key, "image/" . end($fileName));
        $images     = "image/" . end($fileName);
        $new_images = "image_thumbnail/" . end($fileName);
        $width      = 100; //*** Fix Width & Heigh (Autu caculate) ***//
        $size       = GetimageSize($images);
        $height     = round($width * $size[1] / $size[0]);

        switch ($size[2]) {
            case IMAGETYPE_GIF:
                $images_orig = imagecreatefromgif($images);
                break;

            case IMAGETYPE_JPEG:
                $images_orig = imagecreatefromjpeg($images);
                break;

            case IMAGETYPE_PNG:
                $images_orig = imagecreatefrompng($images);
                break;

            default:
                die("Unknown filetype");
        }

        //$images_orig = imagecreatefromjpeg($images);
        $photoX     = ImagesX($images_orig);
        $photoY     = ImagesY($images_orig);
        $images_fin = ImageCreateTrueColor($width, $height);
        ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width + 1, $height + 1, $photoX, $photoY);
        ImageJPEG($images_fin, $new_images);
        $i++;
        $i2++;
    }

    echo 'Uploaded<br />';
    echo 'Main Image - ' . $fileName[0] . '<br />';
    echo 'Extra Image 1 - ' . $fileName[1] . '<br />';
    echo 'Extra Image 2 - ' . $fileName[2] . '<br />';
    echo '<hr>';
}

?>
<form action="" method="post" enctype="multipart/form-data" id="form">
username - <input name="username" type="text" id="username" size="50" /><br>
Main Image - <input name="images[]" type="file" id="images[]" size="50" accept="image/jpeg" /><br>
Extra Image 1 - <input name="images[]" type="file" id="images[]" size="50" accept="image/jpeg" /><br>
Extra Image 2 - <input name="images[]" type="file" id="images[]" size="50" accept="image/jpeg" /><br>
<input type="submit" name="addpart" value="Upload" /><br>
</form>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню