รับความสูงและความกว้างของภาพเป็นค่าจำนวนเต็ม?


98

ฉันได้พยายามใช้ฟังก์ชันgetimagesizeของ PHP แล้ว แต่ไม่สามารถดึงความกว้างและความสูงของรูปภาพเป็นค่าจำนวนเต็มได้

ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?

คำตอบ:


197

ลองทำดังนี้

list($width, $height) = getimagesize('path_to_image');

ทำให้แน่ใจ:

  1. คุณระบุเส้นทางรูปภาพที่ถูกต้องที่นั่น
  2. รูปภาพมีสิทธิ์อ่าน
  3. ภาพ Chmod ถึง 755

ลองใช้คำนำหน้าพา ธ ด้วย$_SERVER["DOCUMENT_ROOT"]ซึ่งจะช่วยได้ในบางครั้งเมื่อคุณไม่สามารถอ่านไฟล์ได้


2
777 บนไดเร็กทอรีไม่จำเป็น
โผล่

@poke: แน่ใจ 100% จริงหรือ?
Sarfraz

5
ใช่. 777 หมายถึงการอ่านเขียนและดำเนินการที่เหมาะสมสำหรับเจ้าของกลุ่มและทั้งหมด คุณต้องอ่านและดำเนินการอย่างถูกต้องเพื่อเข้าถึงไดเร็กทอรี แต่คุณไม่จำเป็นต้องเขียนให้ถูกต้อง และคุณก็ไม่ต้องการสิ่งนั้นสำหรับทุกคน 755 น่าจะใช้ได้สำหรับทุกการเข้าถึงโดยที่คุณไม่จำเป็นต้องสร้างไฟล์ภายในไดเร็กทอรี
โผล่

1
น่าสนใจสำหรับฉันที่คุณต้องใช้สิทธิ์ในไดเร็กทอรี แต่ไม่ใช่ภาพนั้นเอง (ใช้งานได้กับรูปภาพใน 644)
Lee Saxon

1
คุณต้องเปิดallow_url_fopenเพื่อให้สามารถใช้getimagesize()กับภาพระยะไกลได้
VertigoRay


13

getimagesize () ส่งคืนอาร์เรย์ที่มีคุณสมบัติของรูปภาพ

list($width, $height) = getimagesize("path/to/image.jpg");

เพื่อรับความกว้างและความสูงหรือ

list($width, $height, $type, $attr)

เพื่อรับข้อมูลเพิ่มเติม


7

แบบนี้ :

imageCreateFromPNG($var);
//I don't know where from you get your image, here it's in the png case
// and then :
list($width, $height) = getimagesize($image);
echo $width;
echo $height;

ไม่ทำงาน: getimagesize() expects parameter 1 to be string, resource givenฟังก์ชั่นgetimagesizeคาดหวังชื่อไฟล์
lopisan

6

PHP getimagesize()ส่งคืนอาร์เรย์ของข้อมูล สองรายการแรกในอาร์เรย์คือสองรายการที่คุณสนใจ ได้แก่ ความกว้างและความสูง ในการรับสิ่งเหล่านี้คุณเพียงแค่ขอดัชนีสองตัวแรกในอาร์เรย์ที่ส่งคืน:

var $imagedata = getimagesize("someimage.jpg");

print "Image width  is: " . $imagedata[0];
print "Image height is: " . $imagedata[1];

สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสาร


4

getimagesize('image.jpg') ฟังก์ชันจะใช้งานได้เฉพาะเมื่อallow_url_fopenตั้งค่าเป็น 1 หรือเปิดภายในไฟล์ php.ini บนเซิร์ฟเวอร์หากไม่ได้เปิดใช้งานควรใช้ ini_set('allow_url_fopen',1); ที่ด้านบนของไฟล์ที่ใช้ฟังก์ชัน getimagesize ()

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.