PHP простое изменение размера изображения после загрузки - PullRequest
5 голосов
/ 07 ноября 2011

Я осмотрелся некоторое время и нашел некоторые очень запутанные и сложные вещи, которые я не мог заставить работать.

Я использую хроноформы с joomla, чтобы создать форму со скриптом загрузки файла, ион загружает изображение на сервер без проблем, пока все хорошо.

Мне нужно взять загруженное изображение и изменить его размер, еще лучше, есть ли способ изменить размер изображения перед его загрузкой на сервер?

Спасибо.

Ответы [ 6 ]

15 голосов
/ 03 июля 2013

Я использую эту простую 1 функцию, которая делает все это

проверить это:

http://www.nimrodstech.com/php-image-resize/

https://github.com/Nimrod007/PHP_image_resize

1 голос
/ 07 ноября 2011

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

$thumb = PhpThumbFactory::create('/path/to/source/image.png');

$thumb->resize(100, 100);

$thumb->save('/path/where/you/want/resized/image.png');
0 голосов
/ 16 февраля 2018

Вот простая библиотека для изменения размера, которую я создал и которую можно найти на здесь, на Github .

Будет работать с любой платформой.

Пример использованиябиблиотека:

// Include PHP Image Magician library
require_once('php_image_magician.php');

// Open JPG image
$magicianObj = new imageLib('racecar.jpg');

// Resize to best fit then crop (check out the other options)
$magicianObj -> resizeImage(100, 200, 'crop');

// Save resized image as a PNG (or jpg, bmp, etc)
$magicianObj -> saveImage('racecar_small.png');
0 голосов
/ 27 января 2014

Chronoforms (v4 здесь) действительно поддерживает это из коробки! (Я видел случайные следы этого для старых версий, вплоть до 1,3.)

Я могу просто перетащить действие Image Resize (из-под Utilites) в нужное событие формы (в On Submit).

ПРИМЕЧАНИЕ: это , а не для изменения размера на стороне клиента. Для этого вам понадобится пакет загрузки форм Javascript, который может отображать миниатюру до и во время загрузки. Они обычно нетривиальны для интеграции. (И использование этих эскизов на стороне клиента также для загрузки вместе с исходным изображением требует еще более продвинутых - и, соответственно, более сложных - вещей; я бы сказал, что это редко стоит дополнительной боли, просто кусаться и снова создайте миниатюру на сервере, и подумайте обо всех тех бедных африканских детях, которые живут даже тяжелее, чем веб-разработчики.;))

0 голосов
/ 07 ноября 2011

[Этот пример] - это то, что вы ищете imagecopyresampled .

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

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

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>
0 голосов
/ 07 ноября 2011

Смотрите эту ссылку.Довольно простые вещи:

http://php.net/manual/en/book.image.php

...