PDA

View Full Version : سوال: کاهش سایز تصاویر توسط php



soroush.r70
پنج شنبه 15 فروردین 1392, 14:23 عصر
من برای تغییر سایز تصاویرم از اسکریپت زیر استفاده می کنم نمی دونم چرا کار نمی کنه دلیلش چی می تونه باشه...؟

imgsize.php


<?php
header ("Content-type: image/jpeg");
/*
JPEG / PNG Image Resizer
Parameters (passed via URL):

img = path / url of jpeg or png image file

percent = if this is defined, image is resized by it's
value in percent (i.e. 50 to divide by 50 percent)

w = image width

h = image height

constrain = if this is parameter is passed and w and h are set
to a size value then the size of the resulting image
is constrained by whichever dimension is smaller

Requires the PHP GD Extension

Outputs the resulting image in JPEG Format

By: Michael John G. Lopez - www.sydel.net
Filename : imgsize.php
*/

$img = $_GET['img'];
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = $_GET['w'];
$h = $_GET['h'];

// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];

if ($percent > 0) {
// calculate resized height and width if percent is defined
$percent = $percent * 0.01;
$w = $sw * $percent;
$h = $sh * $percent;
} else {
if (isset ($w) AND !isset ($h)) {
// autocompute height if only width is set
$h = (100 / ($sw / $w)) * .01;
$h = @round ($sh * $h);
} elseif (isset ($h) AND !isset ($w)) {
// autocompute width if only height is set
$w = (100 / ($sh / $h)) * .01;
$w = @round ($sw * $w);
} elseif (isset ($h) AND isset ($w) AND isset ($constrain)) {
// get the smaller resulting image dimension if both height
// and width are set and $constrain is also set
$hx = (100 / ($sw / $w)) * .01;
$hx = @round ($sh * $hx);

$wx = (100 / ($sh / $h)) * .01;
$wx = @round ($sw * $wx);

if ($hx < $h) {
$h = (100 / ($sw / $w)) * .01;
$h = @round ($sh * $h);
} else {
$w = (100 / ($sh / $h)) * .01;
$w = @round ($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);
// Output resized image
@ImageJPEG ($thumb);
}
?>


طریقه استفاده :


<center><img src="'.root.'inc/imgsize.php?w=450&h=250&img='.root.'upload/'.$row['pic'].'" alt="'.$row['title'].'" title="'.$row['title'].'" class="picnews" ></center>

رضا قربانی
پنج شنبه 15 فروردین 1392, 14:56 عصر
داشی اینجا رو یه دید بزن : http://barnamenevis.org/showthread.php?361824-%D8%AE%D9%88%D8%A7%D9%87%D8%B4-%D9%85%DB%8C%DA%A9%D9%86%D9%85-%DB%8C%DA%A9%DB%8C-%D8%AA%D9%88%DB%8C-%D8%A7%DB%8C%D9%86-%DA%A9%D8%AF-%DA%A9%D9%85%DA%A9%D9%85-%DA%A9%D9%86%D9%87-%D8%AE%DB%8C%D9%84%DB%8C-%D9%88%D9%82%D8%AA%D9%87-%D9%86%D9%85%DB%8C%D8%AA%D9%88%D9%86%D9%85-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA%DB%8C-%D8%B1%D9%88-%DA%A9%D9%88%DA%86%DA%A9-%DA%A9%D9%86%D9%85-%28%D8%B3%D9%88%D8%B1%D8%B3%29&p=1598419&viewfull=1#post1598419