انجام خودکار تغییر اندازه در آپلود عکس؟

imanmir

Member
سلام دوستان
فکر کنیم یک کسی عکسی در اندازه x*y حالا هر چی باشد انتخاب می کند و دکمه آپلود را می زنه می خوام ببینم کدی هست که عکس را به اندازه مخصوصی مثلا:120*120 تبدیل که بدون اینکه کیفیت بهم بریزد ؟
 

amir01

Well-Known Member
بیا برات نوشتم :
کد:
<?php

$Src = "6.jpg";
$newWidth = 120;
$newHeight = 120;

Header('Content-type: image/jpeg');

$Thumb = ImageCreateTrueColor($newWidth, $newHeight);
$Source = ImageCreateFromJpeg($Src);
List($Width, $Height) = GetImageSize($Src);
ImageCopyResized($Thumb, $Source, 0, 0, 0, 0, $newWidth, $newHeight, $Width, $Height);

ImageJpeg($Thumb);

?>
 

imanmir

Member
تست کردم جواب نداد

سلام من کد شما را در داخل کدم ترکیب کدم ولی جواب نداد
میشه ببینی مشکل از کجاست و چه تغییراتی باید درphp.ini بدم؟
 

پیوست ها

  • test.zip
    594 بایت · بازدیدها: 5

amir01

Well-Known Member
شما میخوای عکس تو مرورگر نمایش داده بشه یا با سایز جدید آپلود بشه؟
 

imanmir

Member
سلام

من اول می خوام یک عکس رو وارد db کنه و بعد اون را نمایش بده
ولی شاید کسی عکس با سایز 1000*1000 آپلود کرد می خوام کدی باشه که خود سیستم اتوماتیک سایز را تبدیل به 120*120 کنه بدون ایکه کیفیت بیاد پائین؟
مرسی
 

amir01

Well-Known Member
من اصلا جوابم رو نگرفتم!
شما فقط میخوای عکس کوچیک بشه و نمایش داده بشه ؟ یا کوچیک بشه و آپلود بشه ؟
 

jhoseini

Member
اینارو ببینید شاید بدرد بخوره
---
مخلص داش امیر :)
 

پیوست ها

  • photo_resize2.rar
    1.3 کیلوبایت · بازدیدها: 9
  • photo_resize3.zip
    1.8 کیلوبایت · بازدیدها: 9
  • photo_resize.rar
    7.2 کیلوبایت · بازدیدها: 9

imanmir

Member
کوچیک بشه و بعد آپلود بشه

سلام دوست عزیز مرسی از فایل های ارسالی ولی اگه می شه فایل بالای منو که گذاشتم یک نگاهی کن ببین چه طوری می شه با این کد شما لینک کرد در ضمن یک مشکل خیلی بزرگی قبل از این عملیات اینه که زمانی که عکسم را در دیتابیس ذخیره می کنم عکسم فقط در دیتا بیس یعنی در فایل ها ftp نیست و زمانی که می خواهم نمایشش بدم وقتی روی propertiec می رم نام جدول با فیلد دیتابیس را نمایش می ده مشکل چیه ؟
و زمانی که کاربر دکمه ارسال را زد اول کوچیک کنه بعد آپلود کنه
مرسی
 

amir01

Well-Known Member
کد:
<?php

$Src = "6.jpg";
$newWidth = 120;
$newHeight = 120;

Header('Content-type: image/jpeg');

$Thumb = ImageCreateTrueColor($newWidth, $newHeight);
$Source = ImageCreateFromJpeg($Src);
List($Width, $Height) = GetImageSize($Src);
ImageCopyResized($Thumb, $Source, 0, 0, 0, 0, $newWidth, $newHeight, $Width, $Height);

ImageJpeg($Thumb, "folan/bahman.jpg");

?>

فقط این قسمت آخرش تغییر میکنه. که آدرس اونجایی که عکس کوچیک شده باید آپلود بشه رو بهش میدی.
ما بیشتر آقا جلال...
یاحق...
 

imanmir

Member
آقای امیر

من چه طوری این عکس رو تو دیتا بیس بریزم

کد:
<?php

$Src = "6.jpg";
$newWidth = 120;
$newHeight = 120;

Header('Content-type: image/jpeg');

$Thumb = ImageCreateTrueColor($newWidth, $newHeight);
$Source = ImageCreateFromJpeg($Src);
List($Width, $Height) = GetImageSize($Src);
ImageCopyResized($Thumb, $Source, 0, 0, 0, 0, $newWidth, $newHeight, $Width, $Height);

ImageJpeg($Thumb, "folan/bahman.jpg");

$sql="insert into tb (pic)values('folan/bahman.jpg')";
?>
[code/]

ببینید کد اینسرت درسته بعدش اولش یک فایل 6.jpg  معرفی کردی بعد یک فایل felanbaman.jpg جریان چی ؟
 

amir01

Well-Known Member
این کدی که برات نوشتم میاد فایل 6.jpg رو باز میکنه سازش رو به 120 * 120 تغییر میده و در folan/bahman.jpg ذخیرش میکنه. همین
شما کد رو یه بار اجرا نکردی ببینی که نتیجش چیه؟؟
 

ooghry

Member
حالا اگه سايز عکس از 120*120 کمتر باشه چی ميشه؟عکس بزرگ ميشه؟
حالا اگه عکس دراز باشه چی؟مربع ميشه؟
بهترين راه حفظ نسبت طول و عرض عکس در موقع کوچيک کردنشه
مثال خود php:
http://ir2.php.net/imagecopyresampled
Example #2 Resampling an image proportionally
PHP:
<?php
// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>
 

جدیدترین ارسال ها

بالا