imagesetpixel
lorddoener
- php
0 dedlfix0 Vinzenz Mai0 lorddoener0 lorddoener
Hallo!
Ich habe ein gif bild gezeichnet (keine animation!) und habe dann jeden pixel koords gegeben und die in eine Datenbank gespeichert. Dann habe ich eine generieren.php erstellt, die mir das bild wieder bauen soll.
Das Originalbild hatte 500x500 px. deswegen der folgende quelltext zur ausgabe:
<?php
header("Content-type: image/gif");
$grafik = ImageCreate (500, 500);
$hintergrundfarbe = ImageColorAllocate($grafik, 0, 0, 0);
$a = 1;
$zahl = 41267;
$farbe = ImageColorAllocate($grafik, 255, 255, 255);
while($a <= $zahl)
{
$a++;
$abfrage = "SELECT * FROM $tabelle";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe);
}
}
ImageGIF($grafik);
imagedestroy($grafik);
?>
Ich bekomme ab und zu mal ein weißes feld mit einem schwarzen pixel links oben oder wenn ich die farben umkehre dann umgekehrt!
Momentan bekomme ich folgenden Error:
Die Grafik "http://localhost/bilder-analysieren/generieren.php" kann nicht angezeigt werden, da sie fehler enthält.
Dieser Error ist als Grafik vorhanden und nicht als text!
Ich kann keine andere Funktion verwenden, da ich einen pixel nach dem anderen generieren lassen will!
Für positive Antworten bedanke ich mich hier im voraus!
MFG lorddoener
PS: Kontakt per MSN wäre mir lieber! (MSN Name: lorddoener)
echo $begrüßung;
Momentan bekomme ich folgenden Error:
Die Grafik "http://localhost/bilder-analysieren/generieren.php" kann nicht angezeigt werden, da sie fehler enthält.
Wer oder was gibt diese Meldung aus?
Wenn dein Grafik erzeugendes Script eine Fehlermeldung loswerden will, macht sie das in der ganz normalen Ausgabe, in der auch deine ImageGif()-Daten landen. Du hast dann durch die Textnachricht in den Grafikdaten keine gültige Grafik mehr. Stell den Header zum Testen auf text/plain oder schau in die Quelltextansicht, wenn du das Script direkt aufgerufen hast (also nicht als <img> eingebettet).
Dieser Error ist als Grafik vorhanden und nicht als text!
Das versteh ich nicht.
echo "$verabschiedung $name";
Hallo
$a = 1;
$zahl = 41267;
$farbe = ImageColorAllocate($grafik, 255, 255, 255);
while($a <= $zahl)
Warum keine for-Schleife?
{
$a++;
$abfrage = "SELECT * FROM $tabelle";
Warum über 40.000 mal die exakt gleiche Abfrage, die bei dem von Dir gezeigten Code genausooft das gleiche Ergebnis liefert.
$ergebnis = mysql_query($abfrage);
Was machst Du, wenn mysql_query keine Ressourcenkennung zurückliefert?
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe);
}
}
Kommentierter Code ist besserer Code!
PS: Kontakt per MSN wäre mir lieber! (MSN Name: lorddoener)
Meine Meinung: Dann poste nicht hier im Forum.
Es geht hier im Forum nicht um privaten Support, sondern um öffentliche Diskussion und Lösung von Problemen, die bei vergleichbaren Fällen im Archiv recherchierbar sind.
Freundliche Grüße
Vinzenz
Hallo
$a = 1;
$zahl = 41267;
$farbe = ImageColorAllocate($grafik, 255, 255, 255);
while($a <= $zahl)Warum keine for-Schleife?
Irgendwie hab ich mich an die while schleife gewöhnt!
{
$a++;
$abfrage = "SELECT * FROM $tabelle";Warum über 40.000 mal die exakt gleiche Abfrage, die bei dem von Dir gezeigten Code genausooft das gleiche Ergebnis liefert.
Stimmt eigentlich! Also kommt die Schleife weg!
$ergebnis = mysql_query($abfrage);
Was machst Du, wenn mysql_query keine Ressourcenkennung zurückliefert?
Tja, gute Frage!
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe);
}
}Kommentierter Code ist besserer Code!
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe); /* Pixel werden gesetzt $grafik ist die oben erstellte Grafik, $row->PosX und $row->PosY geben die Koordinaten an, $farbe gibt die Farbe der gesetzten Pixel an */
}
}
PS: Kontakt per MSN wäre mir lieber! (MSN Name: lorddoener)
Meine Meinung: Dann poste nicht hier im Forum.
Es geht hier im Forum nicht um privaten Support, sondern um öffentliche Diskussion und Lösung von Problemen, die bei vergleichbaren Fällen im Archiv recherchierbar sind.
Ok! Ich verstehe schon, das andere Leute, die auch hierher kommen sehen sollen, wie das geht!
Freundliche Grüße
Vinzenz
Hallo
$a = 1;
$zahl = 41267;
$farbe = ImageColorAllocate($grafik, 255, 255, 255);
while($a <= $zahl)Warum keine for-Schleife?
{
$a++;
$abfrage = "SELECT * FROM $tabelle";Warum über 40.000 mal die exakt gleiche Abfrage, die bei dem von Dir gezeigten Code genausooft das gleiche Ergebnis liefert.
$ergebnis = mysql_query($abfrage);
Was machst Du, wenn mysql_query keine Ressourcenkennung zurückliefert?
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe);
}
}Kommentierter Code ist besserer Code!
PS: Kontakt per MSN wäre mir lieber! (MSN Name: lorddoener)
Meine Meinung: Dann poste nicht hier im Forum.
Es geht hier im Forum nicht um privaten Support, sondern um öffentliche Diskussion und Lösung von Problemen, die bei vergleichbaren Fällen im Archiv recherchierbar sind.Freundliche Grüße
Vinzenz
Einfach genial!
Ich hab die while schleife weg genommen und es funzt!
Danke, Danke, Danke!
Jetzt guckts so aus:
<?php
header("Content-type: image/gif");
$grafik = ImageCreate (500, 500);
$hintergrundfarbe = ImageColorAllocate($grafik, 0, 0, 0);
$farbe = ImageColorAllocate($grafik, 255, 255, 255);
$abfrage = "SELECT PosX, PosY FROM $tabelle";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
imagesetpixel($grafik,$row->PosX,$row->PosY,$farbe);
}
ImageGIF($grafik);
imagedestroy($grafik);
?>
Vielen Dank!