Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ขอรบกวนช่วยผมด้วยครับ ต้องการลดขนาดรูปภาพด้วย php แล้วให้คงคุณภาพความชัดไว้เช่นเดิม



 

ขอรบกวนช่วยผมด้วยครับ ต้องการลดขนาดรูปภาพด้วย php แล้วให้คงคุณภาพความชัดไว้เช่นเดิม

 



Topic : 109269



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



ภาพที่ถ่ายจากกล้องก่อนทำการ Resize

Picture difference 3

หลังจากการทำ Resize ด้วยโปรแกรม และ ภาษา php

Picture difference 1

รายละเอียด ของรูปภาพ

Picture difference

จะสังเกตุได้ว่า ภาพทางซ้าย ผม resize ด้วยโปรแกรม Photo scape ส่วนทางภาพ ขวาผม resize ด้วย ภาษา php
ทำไม ภาพที่ resize ด้วย ภาษา php ถึงไม่ชัด จะมีวิธีแก้ไหมครับ ถ้าผมต้องการ ให้ลดขนาดแต่คงคุณภาพ ไว้เช่นเดิมอ่ะครับ
ขอบคุณครับ

นี่คือในส่วนของโค้ดครับ

Code (PHP)
<meta charset="utf-8">

<?
ini_set('memory_limit', '120M'); //ปรับขนาดที่ต้องการจนกว่ามันจะไม่ error
ini_set('max_execution_time', '60'); //อันนี้แถมเผื่อเวลาโปรเซสไม่พอ
$folderpic = "images/DD" ;  //ชื่อโฟลเดอร์ที่ไว้ใช้เก็บไฟล์ 
$max_size = 500; // จำกัดขนาดไฟล์ ค่าเป็น kb
$width=800;  //ขนาดความกว้างที่ต้องการ Resize 
$height=533; // ขนาดความสูงที่ต้องการ Resize

echo $file_size=$_FILES['filUpload']['size']; // ตัวแปรขนาดของไฟล์
$limit_size=1000*$max_size; 


if($file_size >= $limit_size){
echo "<script language='javascript'>alert('ไฟล์ของคุณใหญ่เกินไปครับต้องมีขนาดไม่เกิน $max_size kb');</script>";
} else {

if($_FILES["filUpload"]["tmp_name"]){
		$fileUpload=$_FILES["filUpload"]["tmp_name"]; // ตัวแปร temp
		$fileUpload_name=$_FILES["filUpload"]["name"]; // ตัวแปรชื่อไฟล์
  
  if (isset($_FILES["filUpload"]["name"])) {   // ถ้ามีการเซทชื่อไฟล์มาให้ประมวลผลส่วนนี้
		
		//*** ส่วนนี้คือการ Rename รูปให้เป็นวันที่ที่บันทึก ***//
		$ext = strtolower(end(explode('.', $fileUpload_name)));
		$dateUpFile=date("YmdHis");
		$newname=$dateUpFile.".".$ext;  //ชื่อไฟล์ที่กำหนดขึ้นมาใหม่ โดยใช้วันและเวลาเป็นตัวกำหนดตั้งชื่อ		

	 //*** สร้างภาพขึ้นมาใหม่ตามนามสกุลของไฟล์เดิม ***//
	$images = $fileUpload;
	$size = getimagesize($images);
	$img_type=strtolower(end(explode('.',$images)));
	if($size[2] == 1) {
		
	$images_orig = imagecreatefromgif($images); // GIF
	} else if($size[2] == 2) {
	$images_orig = imagecreatefromjpeg($images); //  JPEG
	}
	else if($size[2] == 3) {
	$images_orig = imagecreatefrompng($images); // png
	}
	
	 //*** ส่วนนี้คือการ Resize รูป ***//
	
	$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); // ทำการ Resize ภาพ
	imagegif($images_fin, $folderpic. "/" . $newname);  
	imagedestroy($images_orig);
	imagedestroy($images_fin);

		}
		
		// ส่วนการ insert ชื่อไฟล์ลง db
		$img = mysql_query("INSERT INTO images VALUES ('id', '$newname')") or die(mysql_error());
if ($img) {
echo "<center><font size=4 color=green>อัพโหลดรูปเรียบร้อยแล้วครับ...</font></center>";
echo "<br>";
}
}
}
?>




Tag : PHP, MySQL, HTML/CSS, JavaScript, jQuery, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-18 10:49:54 By : bamossza View : 2005 Reply : 9
 

 

No. 1



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ลองดูตัวนี้ครับ มี DEMO ให้ -->http://www.verot.net/php_class_upload.htm






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-18 11:10:36 By : arm8957
 


 

No. 2



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : arm8957 เมื่อวันที่ 2014-06-18 11:10:36
รายละเอียดของการตอบ ::
โอเคครับ ขอบคุณครับ เดวของลองศึกษาก่อนครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-18 11:16:18 By : bamossza
 

 

No. 3



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : bamossza เมื่อวันที่ 2014-06-18 11:16:18
รายละเอียดของการตอบ ::
ก็ยังไม่ได้อยู่ดีครับ จากโค้ดผม ท่านลองดัดได้ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-18 16:53:04 By : bamossza
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


imagecopyresampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); // ทำการ Resize ภาพ

เปลี่ยนเป็น imagecopyresize();

resampled ชื่อมันก็บอกไว้แล้วครับเป็น ตัวอย่าง เอาความละเอียดเท่าเดิมต้องใช้ตัวที่บอกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-18 18:03:23 By : Chaidhanan
 


 

No. 5



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-18 18:03:23
รายละเอียดของการตอบ ::

แก้ยังไงนะคับบบ พอดี ไม่เคยทำเลยคับ ขอบคุณครับ
//*** ส่วนนี้คือการ Resize รูป ***//

$photoX = imagesx($images_orig);
$photoY = imagesy($images_orig);
$images_fin = imagecreatetruecolor($width, $height);
//setResolution($photoX,$photoY);
//imagecopyresampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); // ทำการ Resize ภาพ
//imagegif($images_fin,"$folderpic/".$newname);
imagecopyresize($images_fin, $images_orig);
imagegif($images_fin, $folderpic. "/" . $newname);
imagedestroy($images_orig);
imagedestroy($images_fin);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-18 22:40:36 By : bamossza
 


 

No. 6



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ใช้ imagecopyresampled() น่ะถูกต้องแล้วครับ ถ้าใช้ imagecopyresized() ภาพจะแตกและไม่สวยเมื่อถูกย่อหรือขยายครับ
ซึ่งจริงๆ แล้วปัญหาอยู่ที่บรรทัดนี้ครับ

บรรทัดที่ 51
imagegif($images_fin, $folderpic. "/" . $newname); 


คุณใช้ฟังก์ชั่น imagegif() มันจึง export ออกไปเป็นไฟล์ gif ซึ่งมีสีสูงสุดได้แค่ 256 สี (8 bit)
ให้เปลี่ยนเป็น imagejpeg() หรือ imagepng() ครับ (แล้วแต่ว่าจะให้เป็นไฟล์ jpg หรือ png)

Code (PHP)
imagejpeg($images_fin, $folderpic. "/" . $newname);
imagejpeg($images_fin, $folderpic. "/" . $newname, 90); // หรือเพิ่มตัวเลขที่ระบุคุณภาพของภาพด้วย ถ้าไม่เพิ่ม default คือ 75

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-19 01:59:12 By : phpinfo()
 


 

No. 7



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : phpinfo() เมื่อวันที่ 2014-06-19 01:59:12
รายละเอียดของการตอบ ::
resizePic

ขอบคุณครับ ตอนนี้ บิต เพิ่มขึ้นมาละครับ แล้วจากที่ผม สไลด์สีเหลือง ไว้ ตรงนี้ยังไงมันก็ลดอยู่แล้วไช่ไหมครับ ไม่สามารถคงคุณภาพ ได้ไช่ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-19 10:53:59 By : bamossza
 


 

No. 8



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : bamossza เมื่อวันที่ 2014-06-19 10:53:59
รายละเอียดของการตอบ ::
ไฮไลท์สีเหลืองคือdpi มันลดอยู่แล้วครับ
ปกติแล้วภาพสำหรับเว็บแค่ 72 ก็พอครับ มากกว่านี้ไม่ได้ช่วยอะไร งานเว็บไม่ใช่งานพิมพ์ ไม่ต้องการ dpi มาก แต่ว่า 96 มันน่าจะได้จาก gd ที่ทำงานกับ php ซึ่งไม่มีปัญหา กำลังดี

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-19 13:03:13 By : mr.v
 


 

No. 9



โพสกระทู้ ( 53 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 8 เขียนโดย : mr.v เมื่อวันที่ 2014-06-19 13:03:13
รายละเอียดของการตอบ ::
อ่อๆ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-20 08:54:36 By : bamossza
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอรบกวนช่วยผมด้วยครับ ต้องการลดขนาดรูปภาพด้วย php แล้วให้คงคุณภาพความชัดไว้เช่นเดิม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่