मुझे छवि स्केलिंग के this discussion द्वारा चिंतित किया गया था और बाद में पता चला कि अपलोड किए गए चित्रों से थंबनेल बनाने के लिए मैं उपयोग कर रहा PHP कोड एक ही समस्या से पीड़ित है। मैंने नीचे दिए गए PHP फिक्स को कोशिश करने का निर्णय लिया (गामा को 2.2 से 1.0 तक परिवर्तित करना, छवि का आकार बदलना, गामा को 1.0 से 2.2 में परिवर्तित करना)। यह लेख में उल्लिखित मुद्दे को हल करने के लिए काम करता है, हालांकि कोड में इस संशोधन में पीएनजी अल्फा चैनल पारदर्शिता को खारिज करने का दुर्भाग्यपूर्ण दुष्प्रभाव है।PHP जीडी 2: अल्फा चैनल पारदर्शिता और सही गामा को बनाए रखने के लिए कैसे करें
यहां कोड में मेरे पास गामा सुधार के साथ कोड है।
<?php
$image = imagecreatefrompng($source_file);
$resized_image = imagecreatetruecolor($new_width, $new_height);
imagealphablending($resized_image, false);
imagesavealpha($resized_image, true);
imagegammacorrect($image, 2.2, 1.0);
imagecopyresampled($resized_image, $image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagegammacorrect($resized_image, 1.0, 2.2);
imagepng($resized_image, $dest_file);
?>
किसी को भी पता है कि छवि का आकार करने के लिए कैसे, गामा सुधार चाल को रोजगार, जबकि मूल छवि की अल्फ़ा चैनल पारदर्शिता को बनाए रखने?
संपादित
नमूना छवियों:
- मूल फ़ाइल - पीएनजी अल्फ़ा चैनल पारदर्शिता के साथ दोनों imagegammacorrect() फ़ंक्शन कॉल दोनों imagegammacorrect साथ
- आकृति परिवर्तन फ़ाइल पर टिप्पणी के साथ
- आकृति परिवर्तन फ़ाइल() फंक्शन कॉल
आप इसे देख सकते हैं ई पारदर्शिता तब तक ठीक है जब तक आप गामा को सही करने का प्रयास नहीं करते। (पारदर्शिता नीचे काम कर रहा है देखने के लिए सबसे आसान तरीका है पैरा टैग छवियों के चारों ओर लिपटा का निरीक्षण किया और एक पृष्ठभूमि जोड़ने के लिए है:। काले; FireBug या इसी तरह के माध्यम से अपनी शैली विशेषता के लिए)
original image http://ender.hosting.emarketsouth.com/images/test-image.png no gamma correction http://ender.hosting.emarketsouth.com/images/test-image-resized-no-gamma.png gamma corrected - no transparency http://ender.hosting.emarketsouth.com/images/test-image-resized.png
रोचक, मुझे कार्यालय में वापस आने पर कल के साथ कुछ समय बिताना होगा :) –
को मेरे मौजूदा कोड के साथ इसे गठबंधन करने के लिए थोड़ा सा रिफैक्टरिंग करना था, लेकिन अंत में यह बहुत अच्छा काम करता है। बहुत सराहना की! –