clip2ni
دوشنبه 07 اسفند 1391, 09:28 صبح
با سلام
بنده برای ریسایز تصاویر سایتم از timthum استفاده میكردم كه به دلیل لود بالاش و كم كردن سرعت لود سایتم مجبور شدم از اسكریپت فوق العاده ساده زیر استفاده كنم
اما مشكلی كه هست اینكه این اسكریپت هم به شدت تو لود میمونه و باعث كند شدن سایتم میشه
آیا كسی اسكریپتی میشنسانه یا كدی یا روشی كه بشه عكسهارو هنگام نمایش ریسایز كرد و این همه به رم و سی پی یو فشار نیاورد؟
<?php
header ("Content-type: image/jpeg");
$img = str_replace(" ", "%20", $_GET['img']);
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = 200;
$h = 150;
// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];
$original_aspect = $sw / $sh;
$thumb_aspect = $w / $h;
if ( $original_aspect >= $thumb_aspect )
{
// If image is wider than thumbnail (in aspect ratio sense)
$new_height = $h;
$new_width = $sw / ($sh / $h);
}
else
{
// If the thumbnail is wider than the image
$new_width = $w;
$new_height = $sh / ($sw / $w);
}
$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF
if (!$im) {
// We get errors from PHP's ImageCreate functions...
// So let's echo back the contents of the actual image.
readfile ($img);
} else {
// Create the resized image destination
$thumb = @ImageCreateTrueColor ($w, $h);
// Copy from image source, resize it, and paste to image destination
// @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
@imagecopyresampled($thumb,
$im,
0 - ($new_width - $w) / 2, // Center the image horizontally
0 - ($new_height - $h) / 2, // Center the image vertically
0, 0,
$new_width, $new_height,
$sw, $sh);
// Output resized image
// @ImageJPEG ($thumb);
imagejpeg($thumb, $thumbname, 60);
}
?>
سرعت بارگزاری سایت من خیلی پایینه و جالبه به محض غیرفعال كردن این اسكریپت های تغییر سایز سرعت میره بالا به شدت !!!
بنده برای ریسایز تصاویر سایتم از timthum استفاده میكردم كه به دلیل لود بالاش و كم كردن سرعت لود سایتم مجبور شدم از اسكریپت فوق العاده ساده زیر استفاده كنم
اما مشكلی كه هست اینكه این اسكریپت هم به شدت تو لود میمونه و باعث كند شدن سایتم میشه
آیا كسی اسكریپتی میشنسانه یا كدی یا روشی كه بشه عكسهارو هنگام نمایش ریسایز كرد و این همه به رم و سی پی یو فشار نیاورد؟
<?php
header ("Content-type: image/jpeg");
$img = str_replace(" ", "%20", $_GET['img']);
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = 200;
$h = 150;
// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];
$original_aspect = $sw / $sh;
$thumb_aspect = $w / $h;
if ( $original_aspect >= $thumb_aspect )
{
// If image is wider than thumbnail (in aspect ratio sense)
$new_height = $h;
$new_width = $sw / ($sh / $h);
}
else
{
// If the thumbnail is wider than the image
$new_width = $w;
$new_height = $sh / ($sw / $w);
}
$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF
if (!$im) {
// We get errors from PHP's ImageCreate functions...
// So let's echo back the contents of the actual image.
readfile ($img);
} else {
// Create the resized image destination
$thumb = @ImageCreateTrueColor ($w, $h);
// Copy from image source, resize it, and paste to image destination
// @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
@imagecopyresampled($thumb,
$im,
0 - ($new_width - $w) / 2, // Center the image horizontally
0 - ($new_height - $h) / 2, // Center the image vertically
0, 0,
$new_width, $new_height,
$sw, $sh);
// Output resized image
// @ImageJPEG ($thumb);
imagejpeg($thumb, $thumbname, 60);
}
?>
سرعت بارگزاری سایت من خیلی پایینه و جالبه به محض غیرفعال كردن این اسكریپت های تغییر سایز سرعت میره بالا به شدت !!!