Я всегда сжимаю изображения с http://compressjpeg.com/, прежде чем загружать их, это не очень практично. Я хочу сделать компрессор, как http://compressjpeg.com/ с php.Как сжать изображения без функции?
я этот код
<?php
require '../../db/sessions.php';
require '../../db/ds.php';
$path = "../../image/color/aqua/";
$valid_formats = array("jpg", "png", "gif", "bmp");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$name = $_FILES['aqua-example']['name'];
$size = $_FILES['aqua-example']['size'];
$code = $_POST['aqua-code'];
if(strlen($name))
{
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats))
{
if($size<(1024*1024))
{
$ext = "jpg";
$actual_image_name = $code.".".$ext;
$tmp = $_FILES['aqua-example']['tmp_name'];
if(move_uploaded_file($tmp, $path.$actual_image_name))
{
$query = "UPDATE waiting_item SET aqua='$actual_image_name' WHERE id='$code'";
$res = $mysqli->query($query);
echo "<img src='/image/color/aqua/".$actual_image_name."' width='400' height='400' class='ua6m u766 ".$actual_image_name."'>";
}
else
echo "failed";
}
else
echo "Image file size max 1 MB";
}
else
echo "Invalid file format..";
}
else
echo "Please select image..!";
exit;
}
?>
Есть ли способ сжатия без использования функции? Возможно, это был слишком много кода. И как создать два изображения разных размеров? например изображение A=900px x 600px
и B=120px x 500px
? Благодаря
EDITED
<?php
require '../../db/sessions.php';
require '../../db/ds.php';
$path = "../../image/color/aqua/";
$valid_formats = array("jpg", "png", "gif", "bmp");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$name = $_FILES['aqua-example']['name'];
$size = $_FILES['aqua-example']['size'];
$code = $_POST['aqua-code'];
if(strlen($name))
{
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats))
{
if($size<(1024*1024))
{
$ext = "jpg";
$actual_image_name = $code.".".$ext;
$tmp = $_FILES['aqua-example']['tmp_name'];
if(move_uploaded_file($tmp, $path.$actual_image_name))
{
// --------------------------------- THIS ----------------------------- //
function Img_Resize($paths) {
$x = getimagesize($paths);
$width = $x['0'];
$height = $x['1'];
$rs_width = $width/2;
$rs_height = $height/2;
switch ($x['mime']) {
case "image/gif":
$img = imagecreatefromgif($paths);
break;
case "image/jpeg":
$img = imagecreatefromjpeg($paths);
break;
case "image/png":
$img = imagecreatefrompng($paths);
break;
}
$img_base = imagecreatetruecolor($rs_width, $rs_height);
imagecopyresized($img_base, $img, 0, 0, 0, 0, $rs_width, $rs_height, $width, $height);
$path_info = pathinfo($paths);
switch ($path_info['extension']) {
case "gif":
imagegif($img_base, $paths);
break;
case "jpeg":
imagejpeg($img_base, $paths);
break;
case "png":
imagepng($img_base, $paths);
break;
}
}
$img = Img_Resize($path,$actual_image_name);
// ------------------ end ----------------------------- //
$query = "UPDATE waiting_item SET aqua='$actual_image_name' WHERE id='$code'";
$res = $mysqli->query($query);
echo "<img src='/image/color/aqua/".$actual_image_name."' width='400' height='400' class='ua6m u766 ".$actual_image_name."'>";
}
else
echo "failed";
}
else
echo "Image file size max 1 MB";
}
else
echo "Invalid file format..";
}
else
echo "Please select image..!";
exit;
}
?>
Извините, непонятно, что вы на самом деле спрашиваете. Что вы подразумеваете под «без использования функции»? Конечно, вы не сможете делать графические преобразования без использования каких-либо функций библиотеки. И: почему это должно быть проблемой? – arkascha
На самом деле я не вижу никакого преобразования («сжатие», как вы его называете ...) вообще в коде выше. Вы просто переименовываете некоторые файлы на основе очень ненадежного «обнаружения типа». – arkascha
как этот 'функция compress ($ source, $ destination, $ quality) {.. bla bla bla .....}' что не может, если не использовать его? то как при использовании с функцией? – Rahayu