برگزیده های پرشین تولز

تغییر سایز عکس در GD

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
من یه تابع می خواستم که مستقیم برام سایز یه عکس رو عوض (کوچیک) کنه و بعد هم اونو ذخیره کنم.
من قبلاً این کار رو به صورت خیلی پر دردسر انجام می دادمم که کیفیت عکس هم پایین می ومد.
...
حتماً باید تابعی باشه که این کار رو بکنه.
لطفاً راهنمایی کنید.
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
این پیغام ای که مردم گذاشتند رو توی اینجا بخون :
http://php.morva.net/manual/en/function.imagecopyresized.php
این کده بد نیست ولی از عکسه کپی نمی گیره !
یکم همون مطلاب رو بخون شاید توش چیزی باشه !
PHP:
<?php
//                      Resize image.
//            Writeen By: Smelban & Haker4o
// Mails [email protected] & [email protected]
// This code is written to only execute on  jpg,gif,png     
// $picname = resizepics('pics', 'new widthmax', 'new heightmax');
// Demo  $picname = resizepics('stihche.jpg', '180', '140');
$picname = resizepics('picture-name.format', '180', '140');
echo $pickname;
//Error
die( "<font color=\"#FF0066\"><center><b>File not exists :(<b></center></FONT>");
//Funcion resizepics
function resizepics($pics, $newwidth, $newheight){
     if(preg_match("/.jpg/i", "$pics")){
           header('Content-type: image/jpeg');
     }
     if (preg_match("/.gif/i", "$pics")){
           header('Content-type: image/gif');
     }
     list($width, $height) = getimagesize($pics);
     if($width > $height && $newheight < $height){
       $newheight = $height / ($width / $newwidth);
     } else if ($width < $height && $newwidth < $width) {
       $newwidth = $width / ($height / $newheight);   
     } else {
       $newwidth = $width;
       $newheight = $height;
   }
   if(preg_match("/.jpg/i", "$pics")){
   $source = imagecreatefromjpeg($pics);
   }
   if(preg_match("/.jpeg/i", "$pics")){
   $source = imagecreatefromjpeg($pics);
   }
   if(preg_match("/.jpeg/i", "$pics")){
   $source = Imagecreatefromjpeg($pics);
   }
   if(preg_match("/.png/i", "$pics")){
   $source = imagecreatefrompng($pics);
   }
   if(preg_match("/.gif/i", "$pics")){
   $source = imagecreatefromgif($pics);
   }
   $thumb = imagecreatetruecolor($newwidth, $newheight);
   imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
   return imagejpeg($thumb);
   if(preg_match("/.jpg/i", "$pics")){
   return imagejpeg($thumb);
   }
   if(preg_match("/.jpeg/i", "$pics")){
   return imagejpeg($thumb);
   }
   if(preg_match("/.jpeg/i", "$pics")){
   return imagejpeg($thumb);
   }
   if(preg_match("/.png/i", "$pics")){
   return imagepng($thumb);
   }
   if(preg_match("/.gif/i", "$pics")){
   return imagegif($thumb);
   }
 }
?>
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
دستت درد نکنه.
تونستم عکسم رو کوچیک کنم.
فقط تو 5 خط.

merc
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
حواست باشه توی این php کدی که برای فایل jpg می نویسی با اونی که برای gif باید نوشت فرق می کنه و همینظور png !
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
به نقل از Parsa_361 :
دستت درد نکنه.
تونستم عکسم رو کوچیک کنم.
فقط تو 5 خط.

merc
راستی تو چی کارش کردی ؟
من زیاد تو مد این کارها نوبدم
تو که گفتی رفتم تو فکر
یک روش نوشتم خودم هم کف کردم !فقط فکر کنم یک روش ساده تر هم داشته باشه !

PHP:
<?
$filename = 'images/bobo.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

ob_start();
imagejpeg($image_p, null, 100);
$image_s=ob_get_contents();
ob_clean();

 
$fp=fopen("small-bobo.jpg","wb");
fwrite($fp,$image_s);
 
 
?>
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از miladmovie :
حواست باشه توی این php کدی که برای فایل jpg می نویسی با اونی که برای gif باید نوشت فرق می کنه و همینظور png !
خودم می دونم من فقط با jpeg کار دارم.
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از miladmovie :
راستی تو چی کارش کردی ؟
من زیاد تو مد این کارها نوبدم
تو که گفتی رفتم تو فکر
یک روش نوشتم خودم هم کف کردم !فقط فکر کنم یک روش ساده تر هم داشته باشه !

PHP:
...
بابا تو کاملاً لقمه رو دور سرت چر خوندی
نصف کد هات زیادیه!

من یه مدتیه رفتم تو نخ gd

به زودی هم یه تابع می دم بیرون که بترکونه!!
لنگش تو دنیا پیدا نمی شه.

:D
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
نصفش که نه ! :rolleyes:
اون ها بالای اگر اصولی باشه باید اون طوری باشه
فقط می مونه :

PHP:
// Output

ob_start();
imagejpeg($image_p, null, 100);
$image_s=ob_get_contents();
ob_clean();


$fp=fopen("small-bobo.jpg","wb");
fwrite($fp,$image_s);

:) ;)
 

Parsipark.Com

کاربر تازه وارد
تاریخ عضویت
25 دسامبر 2008
نوشته‌ها
13
لایک‌ها
0
آقايون دست گل همتون درد نكنه !
اين كد جادو كرد ! ( از همين لينكايي كه لطف كرديد برداشتم )

PHP:
<?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);
?>
 

positron x2

کاربر تازه وارد
تاریخ عضویت
25 جولای 2007
نوشته‌ها
43
لایک‌ها
0
می تونید یه کدی بزارید که فقط عکس ها رو resize کنه یعنی به نسبت طول و عرض کوچیک کنه . نه اینکه اندازه طول و عرض رو خودمون بدیم!
 

Parsipark.Com

کاربر تازه وارد
تاریخ عضویت
25 دسامبر 2008
نوشته‌ها
13
لایک‌ها
0
می تونید یه کدی بزارید که فقط عکس ها رو resize کنه یعنی به نسبت طول و عرض کوچیک کنه . نه اینکه اندازه طول و عرض رو خودمون بدیم!
مي تونيد سايز عكس رو بگيريد و تقسيم كنيد و بزاريد داخل متغير !
 
بالا