Hallo zusammen,
zur Zeit muss ich mich gezwungenermassen recht stark mit den Bilderstellungs-Funktionen von PHP beschäftigen.
Es geht darum, ein Bild zu erzeugen, für das aus einem anderen Bild für jede einzelne Koordinate der Farbwert ausgelesen, die Koordinate verändert und unter diesem neuen Ort die entsprechende Farbe gezeichnet wird.
Das klappt auch alles wunderbar. Nur eines: Die Qualität lässt zu wünschen übrig. Wenn man die Transformation mehrere Male hintereinander ausführt, wird die Qualität immer schlechter - was ja auch nur verständlich ist.
Meine Frage ist nun:
Wie kann ich die Qualität verbessern?
Kann ich durch das Benutzen von bestimmten Funktionen eine bessere Qualität erreichen?
Wäre ein GIF-Bild schärfer als ein JPG? (wenn ja - woher kriege ich GD < 1.6 ?)
Entsteht diese Unschärfe (sie besteht darin, dass gewisse Bildpunkte einfach schwarz werden) ausschliesslich durch das Abspeichern? (denn eigentlich werden ja für jede Koordinate explizit die Farbe gesetzt und diese ist nie schwarz!)
Mittlerweile habe ich durch die Verwendung eines bestimmten Rechenvorgangs das eigentlich lösen können, da nun Transformationsschritte übergangen werden und nur einmal das Bild verändert wird. Die Qualität stimmt nun, aber ... die Zahlen während der Berechnung werden zu gross.
Natürlich könnte ich jetzt die GMP-Erweiterung benutzen, aber ich benutze Windows und muss es später auch auf Windows betreiben können.
Gibt es da keine weiteren Erweiterungen, die ähnliches leisten? (benötigte Operationen sind Modulo, Multiplikation und Addition)
Eine zweite Frage:
In einer anderen Aufgabe will ich in Echtzeit zeichnen. Bevor ich mit dem Ganzen beginnen will, will ich einfach schnell noch fragen, ob sowas überhaupt möglich ist (natürlich, ich könnte es einfach mit einem einfachen Beispiel schnell ausprobieren - aber ich bin wohl zu bequem...).
Ist es überhaupt möglich, dass immer nach einer abgeschlossenen Berechnung ein Bild an den Browser ausgegeben wird (bzw. das alte erneuert wird), ohne dass der User dazu auf "weiter" zu drücken hätte? Also eigentlich ein "Kino mit PHP"?
Ich habe mir es so vorgestellt, dass durch die Versendung des Header-Befehls der Output des Bildes an sich ja kein Problem ist, aber ich bin mir nicht sicher, ob es möglich ist, mehrmals hintereinander ein Bild auszugeben...
Freue mich über jede Antwort. Vielen Dank im Voraus...
MfG, rob
zur Zeit muss ich mich gezwungenermassen recht stark mit den Bilderstellungs-Funktionen von PHP beschäftigen.
Es geht darum, ein Bild zu erzeugen, für das aus einem anderen Bild für jede einzelne Koordinate der Farbwert ausgelesen, die Koordinate verändert und unter diesem neuen Ort die entsprechende Farbe gezeichnet wird.
Das klappt auch alles wunderbar. Nur eines: Die Qualität lässt zu wünschen übrig. Wenn man die Transformation mehrere Male hintereinander ausführt, wird die Qualität immer schlechter - was ja auch nur verständlich ist.
Meine Frage ist nun:
Wie kann ich die Qualität verbessern?
Kann ich durch das Benutzen von bestimmten Funktionen eine bessere Qualität erreichen?
Wäre ein GIF-Bild schärfer als ein JPG? (wenn ja - woher kriege ich GD < 1.6 ?)
Entsteht diese Unschärfe (sie besteht darin, dass gewisse Bildpunkte einfach schwarz werden) ausschliesslich durch das Abspeichern? (denn eigentlich werden ja für jede Koordinate explizit die Farbe gesetzt und diese ist nie schwarz!)
Mittlerweile habe ich durch die Verwendung eines bestimmten Rechenvorgangs das eigentlich lösen können, da nun Transformationsschritte übergangen werden und nur einmal das Bild verändert wird. Die Qualität stimmt nun, aber ... die Zahlen während der Berechnung werden zu gross.
Natürlich könnte ich jetzt die GMP-Erweiterung benutzen, aber ich benutze Windows und muss es später auch auf Windows betreiben können.
Gibt es da keine weiteren Erweiterungen, die ähnliches leisten? (benötigte Operationen sind Modulo, Multiplikation und Addition)
Eine zweite Frage:
In einer anderen Aufgabe will ich in Echtzeit zeichnen. Bevor ich mit dem Ganzen beginnen will, will ich einfach schnell noch fragen, ob sowas überhaupt möglich ist (natürlich, ich könnte es einfach mit einem einfachen Beispiel schnell ausprobieren - aber ich bin wohl zu bequem...).
Ist es überhaupt möglich, dass immer nach einer abgeschlossenen Berechnung ein Bild an den Browser ausgegeben wird (bzw. das alte erneuert wird), ohne dass der User dazu auf "weiter" zu drücken hätte? Also eigentlich ein "Kino mit PHP"?
Ich habe mir es so vorgestellt, dass durch die Versendung des Header-Befehls der Output des Bildes an sich ja kein Problem ist, aber ich bin mir nicht sicher, ob es möglich ist, mehrmals hintereinander ein Bild auszugeben...
Freue mich über jede Antwort. Vielen Dank im Voraus...
MfG, rob
Kommentar