في عالم برمجة PHP، يمكن أن يصبح استرداد أبعاد الصورة باستخدام وظيفة getimagesize الافتراضية أمرًا مرهقًا عند التعامل مع ملف حجم كبير من الصور عن بعد. لمعالجة هذا الاختناق، دعونا نتعمق في نهج بديل يعد بأداء فائق السرعة.
من خلال الاستفادة من وظيفة file_get_contents، يمكننا قراءة عدد محدود فقط من البايتات من الصورة. ويمكن بعد ذلك فحص هذه البيانات بدقة لتحديد أبعاد الصورة.
للشروع في هذا النهج، دعونا نفكر في مقتطف الكود التالي:
function ranger($url){
$headers = array(
"Range: bytes=0-32768"
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$start = microtime(true);
$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";
$raw = ranger($url);
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
$stop = round(microtime(true) - $start, 5);
echo $width." x ".$height." ({$stop}s)";
تستخدم هذه الوظيفة وظيفة Ranger لاسترداد جزء صغير من بيانات الصورة. بعد ذلك، يتم استخدام imagecreatefromstring لإنشاء مصدر صورة من البيانات المستردة. وأخيرًا، توفر لنا Imagesx وimagesy عرض الصورة وارتفاعها، على التوالي.
عند اختبارها باستخدام عنوان URL للصورة، أظهر هذا الأسلوب سرعة مذهلة، كما هو موضح أدناه:
640 x 480 (0.20859s)
في هذه الحالة، استغرق استخراج أبعاد الصورة 0.20859 ثانية فقط، مما يسلط الضوء على كفاءة هذه الطريقة.
من خلال تسخير قوة قراءة كمية محدودة من البيانات من الصور البعيدة، ابتكرنا طريقة سريعة وفعالة للحصول على أبعاد الصورة في PHP. تمكنك هذه التقنية من مواجهة التحدي المتمثل في معالجة العديد من الصور بسهولة وسرعة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3