2011-09-30 20 views
6

में कनवर्ट करने के लिए PHP का उपयोग करें मेरे पास बहुत सारी जेपीईजी छवियां हैं जिन्हें मैं PHP का उपयोग करके पीएनजी छवियों में कनवर्ट करना चाहता हूं। जेपीईजी ग्राहकों द्वारा अपलोड किए जा रहे हैं, इसलिए मैं यह सुनिश्चित करने के लिए उन पर भरोसा नहीं कर सकता कि वे सही प्रारूप में हैं।जेपीईजी को पारदर्शी पीएनजी

मैं भी अपनी सफेद पृष्ठभूमि पारदर्शी बनाना चाहता हूं।

क्या PHP के पास कोई भी कार्य है जिसका उपयोग मैं इसे प्राप्त करने के लिए कर सकता हूं?

उत्तर

8

विभिन्न समाधान की कोशिश कर रहा है और, कुछ और अनुसंधान कर रहे हैं के कुछ दिनों के बाद में इस समाधान पाया यह है कि क्या मैं मेरे लिए काम किया पाया जाता है ।

$image = imagecreatefromjpeg('image.jpg'); 
imagealphablending($image, true); 
$transparentcolour = imagecolorallocate($image, 255,255,255); 
imagecolortransparent($image, $transparentcolour) 

imagealphablending($image, true); महत्वपूर्ण है।

सही हेडर के साथ पारदर्शी छवि

imagesavealpha($f, true); का प्रयोग के रूप में पिछले एक जवाब में बताया गया निश्चित रूप से काम नहीं करता है और वास्तव में पृष्ठभूमि पारदर्शी बनाने से रोकने के लिए लगता है ...

उत्पादन करने के लिए।

<?php 
    header('Content-Type: image/png'); 
    imagepng($image, null, 1); 
?> 
6
$f = imagecreatefromjpeg('path.jpg'); 
$white = imagecolorallocate($f, 255,255,255); 
imagecolortransparent($f, $white); 

अधिक जानकारी here

+6

इस मान लिया जाये कि काम करेंगे, ध्यान रखें कि जेपीजी एक हानिपूर्ण प्रारूप है। इसका मतलब है कि रंग थोड़ा सा हो सकते हैं, खासकर किनारों के आस-पास और उन जगहों पर जहां रंग सफेद से दूसरे रंग में बदल जाता है। केवल सादे सफेद की तलाश में शायद उन सभी पिक्सेल को नहीं मिलेगा जिन्हें आप पारदर्शी बनाना चाहते हैं। – GolezTrol

+1

बस इस उत्तर को पूरा करने के लिए: 'imagesavealpha ($ f, true) का उपयोग करें;' यह सुनिश्चित करने के लिए कि अल्फा चैनल सहेजा गया है और 'imagepng ($ f,' /path/to/save/file.png '); 'के रूप में सहेजने के लिए पीएनजी। – megaflop

+0

अधिक जानकारी [यहां] (http://www.php.net/manual/en/ref.image.php)। – awm

-3

मैं Convert jpg image to gif, png & bmp format using PHP

$imageObject = imagecreatefromjpeg($imageFile); 
imagegif($imageObject, $imageFile . '.gif'); 
imagepng($imageObject, $imageFile . '.png'); 
imagewbmp($imageObject, $imageFile . '.bmp'); 
+0

आपने पारदर्शिता प्रश्न का उत्तर नहीं दिया है। – megaflop

0

यह मेरे लिए काम किया:

$image = imagecreatefromjpeg("image.jpg"); 
imagealphablending($image, true); 
imagepng($image, "image.png"); 
संबंधित मुद्दे