הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שגיאה בפונקציית כתיבה על תמונה (https://hosts.co.il/forums/showthread.php?t=50592)

oryrm19 25-07-07 01:26

שגיאה בפונקציית כתיבה על תמונה
 
אהלן,
אני מנסה ליצור תמונה בעזרת Php, לכתוב עליה ולהציג אותה
הנה הקוד
PHP קוד:

$image=imagecreatetruecolor(400,500) or die("Error in create in image with GD");
            
$black=imagecolorallocate($image000);
            
$pink=imagecolorallocate($image2331491);
            
$text=$_POST['text'];
            
$background_color $black;
            
$text_color $pink;
            
$font 'arial.ttf';
            
imagettftext($image2001020$black$font$text);
            
imagepng($image); 

אבל מוצג לי על הפלט הבא:
PHP קוד:

‰PNG  ��� IHDR�����פ����¸ל׳��]IDATx�םֱ1���ֲ ץOm  �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������€*;�ְׂ j����IEND®B`‚ 

ניסיתי גם להשתמש בפונקציה imagejpeg אבל מוצג לי פלט באותו הסגנון.
אני עובד על שרת ביתי עם PHP5 וניסיתי גם על שרת טריפוד חינמי עם PHP5 והבעיה לא עוברת

למישהו יש רעיון?

mlnn 25-07-07 01:32

תנסה להוסיף בראש הדף:
PHP קוד:

header('Content-Type: image/png'); 


oryrm19 25-07-07 01:35

רושם שאין אפשרות לעשות header כי כבר נשלח פלט אל המסך. והפלט הוא מה שהצגתי לכם מקודם

ובמקרה שאני שם את header('Content-Type: image/png'); בראש הדף מעל ה <html> מוצג לי:
The image “http://localhost/greeting/index.php” cannot be displayed, because it contains errors.

Gal Shafrir 25-07-07 01:52

תוסיף בהתחלה ob_start();
ובסוף ob_end_flush();

BlueNosE 25-07-07 01:55

ציטוט:

נכתב במקור על ידי DJ G.S (פרסם 529006)
תוסיף בהתחלה ob_start();
ובסוף ob_end_flush();

פתרון מתחמק במקרה הזה,
אין סיבה שישלחו ההיידרים בהתחלה אלא אם יש BOM ואם יש זה לא יעזור בעצם.

syn 25-07-07 02:24

תנסה לשים את הכתובת של הקובץ הזה בתוך תג של IMG בעמוד אחר.

בניה 25-07-07 10:44

תראה פה את הקובץ.

oryrm19 25-07-07 11:04

PHP קוד:

<html>
    <head>
        <title>index</title>
    </head>
    <body>
        <?
        
if($_GET['action']=="create"){
            
$image=imagecreatetruecolor(400,500);
            
$black=imagecolorallocate($image000);
            
$pink=imagecolorallocate($image2331491);
            
$text=$_POST['text'];
            
$background_color $black;
            
$text_color $pink;
            
$font 'arial.ttf';
            
imagettftext($image2001020$black$font$text);
            
            
imagepng($image);
            
            
        }
        else{
            
?>
            <form action="index.php?action=create" method="post">
                <textarea name="text" id="text"></textarea>
                <input type="submit" value="שלח" />
            </form>
        <?
        
}
        
?>
    </body>
</html>


meshuga 25-07-07 11:56

טוב אני רואה שאף אחד לא עונה. אז אני יענה.
תשמע, כשאתה משתמש בGD, אתה לא יכול להדפיס עוד משהו באותו דף, מה שGD בעצם עושה, הוא יוצר לך קובץ, אי פעם פתחת תמונה ב"כתבן"? (תנסה), זה הפלט שמתקבל לך...

בשביל שזה יהיה כמו שצריך, אתה צריך להפריד בין הקבצים או לעשות את התנאי שונה...
כלומר, שלא יהיה שום פלט לפני ואחרי imagepng (במקרה שלך)...
ואז גם כשתוסיף את הHEADER, זה לא יתן לך שגיאה.

BlueNosE 25-07-07 11:56

הקוד הזה מועתק או שפיתחת לבד?
פשוט לא נראה לי הגיוני שאתה לא יודע להשתמש בזה..

נתיב הקובץ PHP-GD צריך להיות חיצוני, בקובץ נפרד. ואז אתה קורא לו ע"י תג IMG.
יש לי הרגשה שלא תבין את זה.. אני לא חושב שאתה מוכן לGD עדיין, תשתפשף עוד קצת..


כל הזמנים הם GMT +2. הזמן כעת הוא 10:07.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ