मैंने एक वेब ऐप बनाया है जो आपको ब्राउज़र से एक फोटो अपलोड करने देता है। आईओएस 6 में इसका उपयोग करते समय, तस्वीरों को लैंडस्केप ओरिएंटेशन में समाप्त होने लगते हैं, भले ही उन्हें अपलोड होने पर पोर्ट्रेट में लिया गया हो। क्या मुझे छवि को सही तरीके से प्राप्त करने के लिए कुछ सर्वर साइड चेक करना चाहिए या क्या कुछ प्रकार के आईओएस विशिष्ट विशेषताओं/जावास्क्रिप्ट को मैं इसे ठीक करने के लिए अपलोड फॉर्म पर आवेदन कर सकता हूं?आईओएस 6 सफारी छवि अपलोड - अभिविन्यास गलत
अद्यतन
के रूप में अनुरोध किया है, यहाँ कोड मैं यह करने के लिए लिखा था है। पूर्व-आवश्यकताएं हैं कि मैं PHP और वाइड इमेज लाइब्रेरी का उपयोग कर रहा हूं (यह एक बहुत बड़ी स्क्रिप्ट से एक स्निपेट है ताकि आप छवि मैनिपुलेशन के लिए कुछ अलग इस्तेमाल कर सकें)।
// Load Image Into Wide Image
$image=WideImage::load(IMG_UPLOAD_DIR.$result['name']);
$exif=exif_read_data(IMG_UPLOAD_DIR.$result['name']);
$orientation=$exif['Orientation'];
$result['orientation']=$orientation;
// Use Wide Image To Resize Images
$full=$image->resize(IMG_FULL_H,IMG_FULL_H);
$thumb=$image->resize(IMG_THUMB_W,IMG_THUMB_H);
switch($orientation){
case 2:
$full->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 3:
$full->rotate(-180)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-180)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 4:
$full->rotate(180)->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(180)->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 5:
$full->rotate(90)->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(90)->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 6:
$full->rotate(90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 7:
$full->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 8:
$full->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
default:
$full->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
}
धन्यवाद - 'exif' मेटाडाटा को पकड़ लिया और मेरी छवि आकार बदलने वाली स्क्रिप्ट में कुछ अतिरिक्त कोड जोड़ा और मैं कर रहा हूं :) – edcs
मुझे लगता है कि इस के लिए इस्तेमाल किया गया कोड इस उत्तर/प्रश्न में साझा किया जाना चाहिए। – eladleb
@eladleb मुझे विश्वास है कि सार्वभौमिक समाधान के बिना एक अलग समस्या होगी। यदि आपके पास एक्सिफ़ डेटा पढ़ने के बारे में विशेष प्रश्न है, तो कृपया आगे बढ़ें और नया प्रश्न बनाएं। –