2010-09-01 13 views
6

मैं resized छवि मैं बाहर निकलना पसंद नहीं,PHP जीडी: आकार बदलने पर खराब गुणवत्ता?

imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

ImageJpeg ($resized_img,"$path_thumbs/$rand_name.$file_ext", 100); 

मैं ImageJpeg में 100 जोड़ा, क्योंकि मैं गुणवत्ता में सुधार करना चाहते हैं, लेकिन यह किसी भी बेहतर नहीं मिला।

मैं आकृति परिवर्तन छवियों/थंबनेल

उत्तर

5

पर गुणवत्ता की कोशिश के बजाय imagecopyresampled का उपयोग कर कैसे बेहतर बना सकते हैं।

25

इसके बजाय imagecopyresampled का उपयोग करने का प्रयास करें। यह इंटरपोलेशन करता है, जिससे चीजें बहुत अच्छी लगती हैं।

+3

$ new_img – JochenJung

+1

बनाते समय भी imagecreatetruecolor() का उपयोग करना सुनिश्चित करें यदि आप PHP मैन्युअल पढ़ते हैं, तो मुझे यकीन है कि उपर्युक्त दो कार्यों का उपयोग करके इसका उल्लेख किया गया है। – Christian

+0

बहुत बढ़िया! पूरी तरह से काम किया, धन्यवाद! –

0

मैं इसके लिए timthumb का उपयोग करता हूं। बस एक और विकल्प दे;)

+0

लिंक कोई काम नहीं है। –

+0

टिमथम्ब पर जानकारी: https://www.binarymoon.co.uk/2014/09/timthumb-end-life/ –

7

पीएचपी 5.5 के बाद से, आप imagesetinterpolation उपयोग कर सकते हैं जिस तरह से अपनी छवियों परिवर्तनों (आमतौर पर, स्केलिंग और resampling दौरान अंतर्वेशित कर रहे हैं निर्धारित करने के लिए, लेकिन यह भी घुमाना आदि)।

http://php.net/manual/en/function.imagesetinterpolation.php

देखें छवि downsampling, आप शायद IMG_SINC एल्गोरिथ्म का उपयोग करने के लिए, यह crisper परिणाम देने के लिए जाता है। घूर्णन के लिए भी।

upsampling के लिए, IMG_BICUBIC_FIXED, IMG_GENERALIZED_CUBIC और IMG_QUADRATIC बेहतर परिणाम दे सकते हैं। आखिरकार आपको उनका परीक्षण करना होगा: जितनी जल्दी हो सके नए बनाए गए छवि संसाधनों पर यह विकल्प सेट करें, जेपीईएस को सहेजते समय इसे उच्च गुणवत्ता वाले ध्वज के साथ संयोजित करें, और जीडी का उपयोग करते समय आपको कलाकृतियों से बहुत मुक्त होना चाहिए।

+0

क्या PHP 5.3 जैसे पिछले संस्करणों के लिए कोई विकल्प हैं? – 58YtQ2H83m17838963l61BU07Y8622

+1

imagecopyresampled, http://php.net/manual/en/function.imagecopyresampled.php देखें – Argo

संबंधित मुद्दे