Изменение размера изображения при загрузке


Мне интересно, что я буду делать. Если я хочу изменить размер изображения при вставке его в базу данных.. Я знаю, что лучше не сохранять изображение в базе данных.. Но я должен сделать это для экономии места на моем маленьком сервере.. В настоящее время я использую этот код для сохранения изображения:

if (isset($_FILES['immagine']) && $_FILES['immagine']['size'] > 0)
{
  $imageName = $_FILES["immagine"]["name"];
  $imageData = file_get_contents($_FILES["immagine"]["tmp_name"]);
  $imageType = $_FILES["immagine"]["type"];
  if(substr($imageType,0,5)=="image")
     {
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

         $stmt = $dbh->prepare("UPDATE `".$_SESSION['id']."`  SET immagine = ?, type = ?, profilo = 1 WHERE profilo = 1");
         $stmt->bindParam(1,$imageData,PDO::PARAM_LOB);
         $stmt->bindParam(2,$imageType,PDO::PARAM_STR);
         $stmt->execute();
     }
}
Author: Giuseppe De Paola, 2015-12-15

1 answers

Вам следует попробовать использовать GD.

// Loads the image
$img = imagecreatefromjpeg($_FILES["immagine"]["tmp_name"]); // Assuming it's a jpeg

// Creates a image to put the thumbnail
$tmp_img = imagecreatetruecolor(<thumbnail width>, <thumbnail height>)

// Resizes the image
imagecopyresampled ( $tmp_img, $img, 0, 0, 0, 0, <thumbnail width>, <thumbnail height>, <original width>, <original height>); // The zeroes are the offsets

// Starts output buffer to not let the image reach the browser
ob_start();

// Render the image
imagejpeg($tmp_image); 

// Capture the image data
$imageData = ob_get_clean();  
 1
Author: Rafa Jaques, 2015-12-15 11:29:54