سؤال

أحاول استخراج تصنيف الصورة "نجوم" من ملفات .jpg باستخدام رمز PHP. نيتي هي إظهار الصور الأعلى تصنيفًا كجزء من عرض الشرائح. لقد وجدت أنه باستخدام php_jpeg_metadata_toolkit_1.11 أنا قادر على الحصول على تصنيف الملف إذا تم تعيين التصنيف من داخل Vista (انقر بزر الماوس الأيمن -> خصائص -> تفاصيل -> تعيين التصنيف بالنقر فوق النجوم) عن طريق قراءة الصفيف الذي تم إرجاعه بواسطة metadata_toolkit

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
$rating = $exif[0][18246]['Data'][0];

ومع ذلك ، إذا قمت بتعيين التصنيف باستخدام جسر Adobe ، يمكنني رؤية "النجوم" في Vista ، ولكن
$exif[0][18246]['Data'][0] إرجاع قيمة فارغة.

هل رمز PHP متاح لقراءة التصنيفات التي يتم تطبيقها بواسطة كل من Windows Vista و Adobe Bridge؟

هل كانت مفيدة؟

المحلول 2

لقد وجدت أن Adobe Bridge يخزن التقييم في موقع مختلف في ملف JPEG من Vista. انظر التفاصيل في المنشور الموجود في رمز PHP المقترح لقراءة تصنيف الملفات التي تم تعيينها بواسطة Adobe Bridge CS3

نصائح أخرى

يتفوقني ، لكن لماذا لا تعرف بنفسك:

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
print_r($exif);

هذا سيطبع محتويات $exif, ، الذي أظن أنه سيكون كبيرًا ، لكن لديك وقت ، أليس كذلك؟ (عرض المصدر في متصفح الويب الخاص بك حتى تتمكن من رؤيته منسقة بشكل صحيح.) انتقل لأسفل للعثور على المفتاح 0 ، ثم المفتاح 18246 ، ثم بيانات المفاتيح ، ثم المفتاح 0. هذا هو الذي وجدته بالفعل. ابحث الآن عن المكان الذي قد يكون فيه التصنيف الآخر. نأمل ألا يكون من الصعب العثور عليها. عندما تجدها ، لاحظ المسار إليه. ثم للحصول عليها:

// This is your Vista rating
$rating = $exif[0][18246]['Data'][0];
if ($rating == null) {
    // no Vista rating, so get the Bridge rating
    $rating = $exif[...fill in this path...];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top