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

работая над загрузчиком и добавил к нему оператор 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

Решение

Спасибо за всю помощь, которую все оказали на этом загрузчике.

Особенности

  • компактный код
  • уникальный идентификатор файла
  • нумерует файлы с шагом +1, начиная с 1 в качестве первого файла
  • можно добавить слово перед ним, например, имя пользователя сеанса или
    имя
  • можно добавить столько файловых блоков, сколько необходимо
  • преобразует изображения в формат 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>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]