image — Как изменить размер изображения в PHP?

Ниже приведен мой код для загрузки изображений в папку на PHP.

if(isset($_GET['id']))
{
$id= $_GET['id'];

$folder = 'uploads/';
$filename = $id.'.jpg';$uploaddir = './uploads/';

// create new directory with 744 permissions if it does not exist yet
// owner will be the user/group the PHP script is run under
if ( !file_exists($folder) ) {
mkdir ($folder, 0744);
}

$data = $_POST['base64data'];

$type = '';

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

$file_path = $folder.$filename;

echo $_POST['base64data'];

file_put_contents($file_path, $data);
}

Но как изменить размер загруженных картинок до нужного мне размера?

Я нашел функцию PHP, но я не уверен, как реализовать ее в моем коде … Это imagecopyresampled:

// Le fichier
$filename = 'test.jpg';

// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;

// Content type
header('Content-Type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Affichage
imagejpeg($image_p, null, 100);

0

Решение

Я думаю, что вы должны сделать это:

if(isset($_GET['id']))
{
/*put the code which resize your image here*/
$id= $_GET['id'];

$folder = 'uploads/';
$filename = $id.'.jpg';$uploaddir = './uploads/';

// create new directory with 744 permissions if it does not exist yet
// owner will be the user/group the PHP script is run under
if ( !file_exists($folder) ) {
mkdir ($folder, 0744);
}

$data = $_POST['base64data'];

$type = '';

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

$file_path = $folder.$filename;

echo $_POST['base64data'];

file_put_contents($file_path, $data);
}

и в комментарии после того, как вы используете imagecopyresampled для изменения размера вашего изображения (попробуйте его с локальным изображением), вы должны получить тип контента и после этого выполнить остальную часть сценария imagecopyresampled.

или вы можете сделать это: проверить это:

nimrodstech.com/php-image-resize

github.com/Nimrod007/PHP_image_resize

0

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

   **Resize images with PHP**<?php

if ($_FILES['fileToUpload']['error'] > 0) {
echo "Error: " . $_FILES['fileToUpload']['error'] . "<br />";
} else {
// array of valid extensions
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
// get extension of the uploaded file
$fileExtension = strrchr($_FILES['fileToUpload']['name'], ".");
// check if file Extension is on the list of allowed ones
if (in_array($fileExtension, $validExtensions)) {
$newNamePrefix = time() . '_';
$manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name']);
// resizing to 200x200
$newImage = $manipulator->resample(200, 200);
// saving file to uploads folder
$manipulator->save('uploads/' . $newNamePrefix . $_FILES['fileToUpload']['name']);
echo 'Done ...';
} else {
echo 'You must upload an image...';
}
}

**Crop  images with PHP**

if ($_FILES['fileToUpload']['error'] > 0) {
echo "Error: " . $_FILES['fileToUpload']['error'] . "<br />";
} else {
// array of valid extensions
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
// get extension of the uploaded file
$fileExtension = strrchr($_FILES['fileToUpload']['name'], ".");
// check if file Extension is on the list of allowed ones
if (in_array($fileExtension, $validExtensions)) {
$newNamePrefix = time() . '_';
$manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name']);
$width  = $manipulator->getWidth();
$height = $manipulator->getHeight();
$centreX = round($width / 2);
$centreY = round($height / 2);
// our dimensions will be 200x130
$x1 = $centreX - 100; // 200 / 2
$y1 = $centreY - 65; // 130 / 2

$x2 = $centreX + 100; // 200 / 2
$y2 = $centreY + 65; // 130 / 2

// center cropping to 200x130
$newImage = $manipulator->crop($x1, $y1, $x2, $y2);
// saving file to uploads folder
$manipulator->save('uploads/' . $newNamePrefix . $_FILES['fileToUpload']['name']);
echo 'Done ...';
} else {
echo 'You must upload an image...';
}
}
0

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