2012-11-07 28 views
11

के साथ किसी छवि में टेक्स्ट जोड़ने के लिए मेरे पास image_creator में छवि निर्माण कोड है।PHP जीडी लाइब्रेरी

<?php 
header("Content-Type: image/jpeg"); 
$im = ImageCreateFromGif("photo.gif"); 
$black = ImageColorAllocate($im, 255, 255, 255); 
$start_x = 10; 
$start_y = 20; 
Imagettftext($im, 12, 0, $start_x, $start_y, $black, 'verdana.ttf', "text to write"); 
Imagejpeg($im, '', 100); 
ImageDestroy($im); 
?> 

छवि उत्पादन के लिए फ़ाइल मैं सिर्फ एक रिक्त पृष्ठ मिल image.php और कोड

<html> 
<head> 
</head> 
<body> 
    <img src="http://localhost/image_creator.php"/> 
</body> 

</html> 

जब मैं image.php चलाने नीचे है। ऐसा क्यों है?

+2

सबसे पहले '$ काला = छवि रंगरक्षक ($ im, 255, 255, 255); - यह सफेद है, काला नहीं है। क्या आपको कोई त्रुटि मिलती है? त्रुटि लॉग की जांच की? – iMoses

+0

@iMoses मुझे लगता है कि '$ black' सिर्फ इसलिए है क्योंकि hes ने php.net से कोड कॉपी किया है: http://php.net/manual/en/function.imagettftext.php – George

+0

इसे सही या समझ में नहीं आता है। मुझे यकीन है कि वे इसे सही मिला है। यह कोई समस्या नहीं है, बस उलझन में है। एक सफेद पृष्ठभूमि पर "खाली" छवि सिर्फ सफेद हो सकती है। – iMoses

उत्तर

31

इस का प्रयोग करें काले यह की तरह होना चाहिए के लिए यहाँ (PHP for Kids से नकल) छवि के लिए पाठ

<?php 
     //Set the Content Type 
     header('Content-type: image/jpeg'); 

     // Create Image From Existing File 
     $jpg_image = imagecreatefromjpeg('sunset.jpg'); 

     // Allocate A Color For The Text 
     $white = imagecolorallocate($jpg_image, 255, 255, 255); 

     // Set Path to Font File 
     $font_path = 'font.TTF'; 

     // Set Text to Be Printed On Image 
     $text = "This is a sunset!"; 

     // Print Text On Image 
     imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text); 

     // Send Image to Browser 
     imagejpeg($jpg_image); 

     // Clear Memory 
     imagedestroy($jpg_image); 
    ?> 
+11

आपने इसे http://www.phpforkids.com/php/php-gd-library-adding-text-writing.php से चिपकाया है, इसके बजाय समस्या को इंगित करने का प्रयास करें –

+2

कृपया अपने स्रोतों का हवाला दें ... अन्यथा यह सिर्फ चोरी चोरी है। मैंने उद्धरण में जोड़ा है। –

+0

यदि मैं ब्राउज़र पर भेजने से पहले एक ही छवि पर टेक्स्ट की कई पंक्तियां जोड़ना चाहता हूं, तो क्या कई 'imagettftext()' फ़ंक्शंस को जोड़ना होगा? साथ ही, मैं इस छवि को अपने सर्वर में एक वास्तविक निर्देशिका में कैसे सहेज सकता हूं ताकि उपयोगकर्ता इसे कभी भी प्रिंट कर सके? – codeninja

0

समस्या को जोड़ने के लिए है, $black = ImageColorAllocate($im, 255, 255, 255); // < == इस काले नहीं, अपने सफेद //,

$black = ImageColorAllocate($im, 0, 0, 0); 
+1

यह सिर्फ परिवर्तनीय दोस्त का नाम है, यह कोई समस्या नहीं है (duh) – stormrage

0

समस्या यहाँ

$black = ImageColorAllocate($im, 255, 255, 255); 
है

यह काला नहीं है, इसका सफेद। काले रंग के लिए यह होना चाहिए,

$black = ImageColorAllocate($im, 0, 0, 0);