|
|
|
ลดขนาดภาพได้แล้ว แต่ว่า copy ภาพมาเกิน ต้องแก้อย่างไร |
|
|
|
|
|
|
|
ลดขนาดภาพได้แล้ว แต่ว่า copy ภาพมา เกิน ต้องทำอย่างไร
สวัสดีครับ ผมได้ทำการลดขนาดภาพโดยใช้ code ด้านล่างนี้
$images = $file;
//กำหนดความสูงของรูปใหม่
$height=80;
$size=GetimageSize($images);
$width=round($height*$size[0]/$size[1]);
$images_orig = ImageCreateFromJPEG($images);
$photoX = ImagesX($images_orig);
$photoY = ImagesY($images_orig);
$images_fin = ImageCreateTrueColor($width, $height);
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
ImageGIF($images_fin,$file_name);
ImageJPEG($images_fin,$file_name);
ImagePNG($images_fin,$file_name);
ImageDestroy($images_orig);
ImageDestroy($images_fin);
copy ($file_name , "photo/small/$Category/".$file_name );
$sql = "insert into $pym_data (smallPic,nphoto,Category)
values ('$file_name','$images','$Category')";
$result1 = mysql_db_query($dbname,$sql);
$idnew = mysql_insert_id();
$newfilename = "big-".$Category."-".$idnew;
$sql22 = "UPDATE $pym_data SET nphoto = '$newfilename$filetype' WHERE No = '$idnew'";
$result22 = mysql_db_query($dbname,$sql22);
copy ($images , "photo/big/$Category/" . $newfilename.$filetype );
ตอนลดขนาดภาพนั้นก็สามารถลดได้แต่ว่า พอผมใช้คำสั่ง copy เพื่อ copy ภาพ
โดยจาก code ข้างบนจะเห็นว่าผมได้ทำการ copy file อยู่2 ครั้ง
ตาม code
copy ($file_name , "photo/small/$Category/".$file_name ); และ
copy ($images , "photo/big/$Category/" . $newfilename.$filetype );
แต่ว่าพอ run ระบบเข้าจริง program จะทำการ copy ภาพมา 3 ภาพ
คือ copy 2 ภาพ ดัง code ด้านบน
และ copy อีก 1ภาพ ไว้ใน folder เดียวกับกัน file program นี้
ตรงนี้เกิดจากสาเหตุอะไรครับ
และพอมีทางแก้ไขไหมครับ ที่จะทำให้ program copy ได้ 2 ภาพ เหมือนกันกับคำสั่งของ
copy ($file_name , "photo/small/$Category/".$file_name ); และ
copy ($images , "photo/big/$Category/" . $newfilename.$filetype );
เท่านั้นครับ
และการสร้างชื่อใหม่ของภาพที่ resize เป็นชื่อใหม่ ต้องทำอย่างไรครับ (เพราะว่ากลัวปัญหาที่ copy ภาพ แล้ว file ซ้ำกัน)
Tag : - - - -
|
|
|
|
|
|
Date :
24 เม.ย. 2548 11:29:45 |
By :
tanapolchk |
View :
2902 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อีก ครั้ง หนึง คือ ขนาดที่ได้ทำการย่อ
ImageGIF($images_fin,$file_name);
ImageJPEG($images_fin,$file_name);
ImagePNG($images_fin,$file_name);
|
|
|
|
|
Date :
24 เม.ย. 2548 12:48:04 |
By :
เจ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้การเปลี่ยนชื่อไฟล์ก่อนทำการ Copy ครับ อาจจะช่วยพวกวันที่มาเกี่ยวข้องในการตั้งชื่อไฟล์ครับ
เช่น $filename=date("YmdHis");
เอาไปรวมกับชื่อไฟล์ ก็จะสามารถป้องกันไฟล์ซ้ำได้แล้วครับ
|
|
|
|
|
Date :
25 เม.ย. 2548 14:30:17 |
By :
@W_IN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|