มีเรื่องมารบกวนอีกแล้วครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา มีเรื่องมารบกวนอีกแล้วครับ
คือผมต้องการ ให้ระบบอับโหลดรูปของผมอะครับ สร้างรูป ขนาดเล็กให้ด้วย เพื่อที่จะเอาไปแสดงหน้าเวบ แล้วให้เขาคลิกที่รูปเล็ก ก็จะแสดงรูปใหญ่
ปัจจุบัน อับโหลดรูปได้แต่เป้นขนาดเท่าขนาดจริงๆ ของรูป แล้วเวลาที่ผมเอามาแสดงหน้าเวบผมก็เรียกรูปนั้นแหละมาแสดง แล้วกำหนดขนาดควากว้างเอา ซึ่ง ความจุของภาพก็จะยังคงเท่าเดิม ถ้าหน้าเวบผมมีหลายๆ รูปก็จะมีปัญหาในการเปิดชมเวบ คือโหลดช้า
รบกวนหน่อยนะครับอาจารย์

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
โค๊ตเดิมผมเป้นแบบนี้ครับ
if( $QPic !='')
{
srand((double)microtime()*1000000);
$QPic_name=$random_pic = rand(1,9999);
# ตรวจสอบความกว้างของรูป
$size = getimagesize($QPic);
# ตรวจสอบขนาดของ Flash
if ( $QPic_type == "application/x-shockwave-flash" ) {
if($QPic_size>$flashSize_limit) {
echo "<br><b><center><font size=3 color=red >ขนาดของไฟล์ Flash เกิน $flashSize_limit bytes [$flashSize_msg]</font></center></b><br>";
echo "<br><b><center><font size=3 color=red >[ <a href='javascript:history.back(1)'>กลับไปแก้ไข</a> ]</font></center></b>";
exit();
}
}
else {
# ตรวจสอบขนาดของรูป
if($QPic_size>$Image_size) {
echo "<br><b><center><font size=3 color=red >ขนาดของภาพเกิน $Image_size bytes [$Image_msg]</font></center></b><br>";
echo "<br><b><center><font size=3 color=red >[ <a href='javascript:history.back(1)'>กลับไปแก้ไข</a> ]</font></center></b>";
exit();
}
}
#แปลงนามสกุล และทำการ upload
if ( $QPic_type == "image/gif" )
{
$filename = $uid._.$picdate.$QPic_name.".gif";
}
if ( $QPic_type == "image/bmp" )
{
$filename = $uid._.$picdate.$QPic_name.".bmp";
}
if ( $QPic_type == "image/png" )
{
$filename = $uid._.$picdate.$QPic_name.".png";
}
if ( $QPic_type == "application/x-shockwave-flash" )
{
$filename = $uid._.$picdate.$QPic_name.".swf";
}
elseif (($QPic_type=="image/jpg")||($QPic_type=="image/jpeg")||($QPic_type=="image/pjpeg"))
{
$filename =strtolower($uid._.$picdate.$QPic_name.$random_pic . '.jpg');
}
copy ($QPic , "$path/" . $filename );
}
ซึ่งมีขนาดไม่เกินขนาดที่กำหนดคือ $Image_size ซึ่งผมกำหนดไว้ใน config ประมาณ 10kb แล้วถ้าผมจะให้สร้างไฟล์ภาพอีกภาพซึ่งมีขนาดประมาณ 150 * 200 px มีชื่อว่า $filename -th เพื่อจะเอาไปโชว์หน้าเวบครับ

ลองอ่าน www.ninenik.com/ฟังก์ชันแปลงความกว้างความสูงของรูปภาพ_หรือ_สร้าง_thumbnail-31.html
ให้อัพโหลดรูปใหญ่ตามปกติ จากนั้นใช้งานฟังก์ชันตามหัวข้อ ข้างบนสร้างรูปขนาดเล็กตามต้องการ

ได้แล้วครับท่านอาจารย์ ผมใช้โค๊ตตัวนี้ครับ
$images = "$path/$nphoto";
$new_images = "resize/$nphoto";
$width=90; //*** Fix Width & Heigh (Autu caculate) ***//
$size=GetimageSize($images);
$height=round($width*$size[1]/$size[0]);
$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);
ImageJPEG($images_fin,$new_images);
ImageDestroy($images_orig);
ImageDestroy($images_fin);
รูปที่โชว์หน้าเพจก็จะเป็น $new_images
ตอนแรกผมก็อ่านบทความแล้วนะครับ แต่ลองทำตามแล้วยังไงก้ไม่ได้ แต่พอไปพิจารณาโค๊ตดูอีกที มันต้องสร้าง folder สำหรับเก็บรูปใหม่ที่ resize แล้ว ถึงได้เข้าใจ ขอบคุณมากนะครับท่านอาจารย์
