SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

помощ за скрипт за ресаизване на снимки

Re: помощ за скрипт за ресаизване на снимки

Правиш един файл с това вътре:
<?php
// тук пишеш пътя до картинката, трябва да го имаш зададен предварително ако не ползваш текущия фолдър
$timage = "admin/images/";
$timage .= $_GET["img"];
$timage .=".jpg";

// това взима оригиналните мерки
$image = @imagecreatefromjpeg($timage);
$width = imagesx($image);
$height = imagesy($image);

// от тука нагласяш пророрции и размери, тук съм сложил ширина 50 пиксела и порпорционална височина, с малко матемита можеш да извъртиш както искаш ти
$new_width = 50;
$new_height = $height * ($new_width/$width);


// това си прави новата картинка
$image_resized = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// това принтира новата картинка
header('Content-type: image/jpeg');
imagejpeg($image_resized);
die();
?>

и го викаш така:
failat.php?img=beer

Където beer е това, което ти трябва (няма нужда да слагаш .jpg накрая) :)

Примерно правиш това
<img src="failat.php?img=beer" alt="beer"/>

Ако нещо е останало неясно - питай :)
Имай впредвид че това е левашки метод - ако имаш 1000 снимки и 10000 души джиткат сървъра може да зависне ;)
 

ZzZaPyr

New member
Re: помощ за скрипт за ресаизване на снимки

Upload + Resize script:
function upload($image)
{
$thisFile = "upload_image.php";

$thumbs120 = "thumbs/";
$thumbs800 = "pics/";
$thumbTemp = "images_temp/";

$max_ImageWidth1 = 120;
$max_ImageHeight1 = 90;

$max_ImageWidth2 = 1024;
$max_ImageHeight2 = 768;

$maxBytes = 1024000; // максимален размер 1MB

if ( file_exists($image) )
{
list($imgWidth, $imgHeight, $imgType, $imgAttr) = getimagesize($image);
if ( !$_FILES['image']['size'] <= 1 && $_FILES['image']['size'] < $maxBytes && ( $imgType == 1 || $imgType == 2 || $imgType == 3 ) )
{
$tempname = basename($_FILES['image']['name']);
$tempname = strtolower($tempname); // преобразува във малки букви
$ext =explode('.', $tempname); $ext = $ext[count($ext)-1]; // взимам типа на файла (jpg, gif или png)
$NewPicture = time().".".$ext; // задавам ново име на файла от типа 1146522303.jpg
move_uploaded_file($_FILES['image']['tmp_name'], $thumbTemp.$NewPicture); // копирам във временната директория
$percentage = 1;
if ( $imgHeight > $max_ImageHeight1 ) { $percentage = ( $max_ImageHeight1 / $imgHeight ); }
if ( $imgWidth > $max_ImageWidth1 ) { $percentage = ( $max_ImageWidth1 / $imgWidth ); }
$NewWidth1 = round( $imgWidth * $percentage ); $NewHeight1 = round( $imgHeight * $percentage );
$percentage = 1;
if ( $imgHeight > $max_ImageHeight2 ) { $percentage = ( $max_ImageHeight2 / $imgHeight ); }
if ( $imgWidth > $max_ImageWidth2 ) { $percentage = ( $max_ImageWidth2 / $imgWidth ); }
$NewWidth2 = round( $imgWidth * $percentage ); $NewHeight2 = round( $imgHeight * $percentage );
$image1 = ImageCreateTrueColor( $NewWidth1, $NewHeight1 );
$image2 = ImageCreateTrueColor( $NewWidth2, $NewHeight2 );
if ( $ext == 'gif' ) { $image = ImageCreateFromGIF( $thumbTemp.$NewPicture ); }
elseif ( $ext == 'png' ) { $image = ImageCreateFromPNG( $thumbTemp.$NewPicture ); }
else { $image = ImageCreateFromJPEG( $thumbTemp.$NewPicture ); }
$NewPicture2 = time().".jpg"; // отново създавам ново име за файла преди да се запише
ImageCopyResized($image1, $image, 0, 0, 0, 0, $NewWidth1, $NewHeight1, $imgWidth, $imgHeight);
ImageCopyResized($image2, $image, 0, 0, 0, 0, $NewWidth2, $NewHeight2, $imgWidth, $imgHeight);
ImageJPEG($image1, $thumbs120.$NewPicture2, 100); // записва малките картинки. В скобите (100) е отбелязано quality(качеството) на изображението, за да станат по-малки по размери го намали, но не по-малко от 70-75 според мен, тествай за да видиш кое те устройва
ImageJPEG($image2, $thumbs800.$NewPicture2, 100); // записва големите картинки
unlink($thumbTemp.$NewPicture); // изтрива временно съхраненият файл
ImageDestroy($image1); ImageDestroy($image2); ImageDestroy($image);

}
// Грешки при опита за ъплоад:
else
{
if ( $_FILES['image']['size'] > $maxBytes ) { $Error = 2; end; }
elseif ( $imgType != 1 || $imgType != 2 || $imgType != 3 ) { $Error = 3; end; }
else { $Error = 4; end; }
}
}

// Съобщения за грешки при добавянето
switch ($Error)
{
case "2":
echo "Разрешеният размер за добавяне на снимки е ".($maxBytes/1024)."KB.<br>Вашият файл е ".(round($_FILES['image']['size']/1024))."KB и не може да бъде добавен.<br>";
break;
case "3":
echo "Разрешено е добавянето само на файлове с формати JPG(JPEG),GIF или PNG.<br>Вашият файл не е добавен.<br>";
break;
case "4":
echo "Грешка при добавянето.<br>Вашият файл не е добавен.<br>";
break;
}

?>

<script language="JavaScript" type="text/JavaScript">
function CheckPicture(form)
{
if ( form.image.value == "" )
{ alert('Няма избран файл за добавяне!'); return false; }
document.NewPic.submit();
}
</script>
}
Само resize script:
function resize($image) {

$max_width = 1024;
$max_height = 768;

list($width, $height, $type, $attr) = getimagesize($image);
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if (($height <= $max_height) && ($width <= $max_width)) {
$tn_height = $height;
$tn_width = $width;
} elseif (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
} else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
switch($type) {
case 1:
header("Content-type: image/gif");
imagegif($src);
break;

case 2:
header('Content-Type: image/jpeg');
imagejpeg($src, '', 100);
break;

case 3:
header("Content-type: image/png");
imagepng($src);
break;
}
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);
}

Това са скриптове , които един мои приятел ползва за сайта си и любезно ми предостави :)
Може да ги видиш как работят http://diema-belene.com/freak/
Ако имаш въпроси относно скрипта обърни се към него от контактите :) Аз съм само посредник в случая :)
Надявам се да ти помогнат ;)
 

Горе