Bilddatei auslesen und bestimmte Farbe in DB speichern
Indigo
- php
Guten Tag,
Ich möchte gerne eine Bilddatei "auslesen".
(momentan .gif, aber es besteht natürlich kein Problem es ist enem anderen Format zu speichern)
Es soll jeder Pixel überprüft werden ob er als Beispiel die Farbe Weiß hat
(Weiß kann ich ebenfalls in jede andere Farbe ändern)
Wenn der Pixel Weiß ist soll die Position X und Y in eine Datenbank eingetragen werden.
Ich bin mir nicht sicher wie ich das anstellen soll.
Meine Erste Idee war, das ich eine Bilddatei einfach als Text lade und immer wenn er auf ein weißen Pixel trifft er es in der DB speichert, allerdings funktioniert das nicht da ich leider den Aufbau nicht verstehe...
Geht soetwas mit PHP oder gibt es ein Format das man relativ leicht als Text auseinander nehmen kann?
Hallo!
Ich möchte gerne eine Bilddatei "auslesen".
Schoen!
(momentan .gif, aber es besteht natürlich kein Problem es ist enem anderen Format zu speichern)
fast egel.
Es soll jeder Pixel überprüft werden ob er als Beispiel die Farbe Weiß hat
oha!
(Weiß kann ich ebenfalls in jede andere Farbe ändern)
klar!
Wenn der Pixel Weiß ist soll die Position X und Y in eine Datenbank eingetragen werden.
ok.
Ich bin mir nicht sicher wie ich das anstellen soll.
merkt man.
Meine Erste Idee war, das ich eine Bilddatei einfach als Text lade und immer wenn er auf ein weißen Pixel trifft er es in der DB speichert, allerdings funktioniert das nicht da ich leider den Aufbau nicht verstehe...
Interessant. Gif speichert erst alle Farbwerte und dann fuer jeden Pixel den Index der Farbe. (deshlab maximall 155 Farben weil nur ein Byte pro Pixel vorgesehen ist)
Geht soetwas mit PHP oder gibt es ein Format das man relativ leicht als Text auseinander nehmen kann?
Ja das geht mit PHP. Ich habs mal versucht. Bei kleinen Bildern ist das auch kein Problem, aber bei groesseren, duerftest dein script jeden vom Server zugewiesenen Zeitrahmen sprengen... Wenn Du allerdings nen eigenen Server mit viel Rechenpower hast, sollte das durchaus moeglich sein. Du brauchst aber ne Menge Ressourcen... Rechne mal aus wieviel Pixel ein Bild von 1024 x 768 Pixeln hat. Da kommste schnell zu schoenen Datenmassen.
was willst Du denn damit bezwecken? Die bilder Pixelweise in einer datenbank speichern? Warum? Was immer du willst, geht vielleicht auch anders...
Ja das geht mit PHP. Ich habs mal versucht. Bei kleinen Bildern ist das auch kein Problem, aber bei groesseren, duerftest dein script jeden vom Server zugewiesenen Zeitrahmen sprengen... Wenn Du allerdings nen eigenen Server mit viel Rechenpower hast, sollte das durchaus moeglich sein. Du brauchst aber ne Menge Ressourcen... Rechne mal aus wieviel Pixel ein Bild von 1024 x 768 Pixeln hat. Da kommste schnell zu schoenen Datenmassen.
Ich habe eine Möglichkeit gefunden, danke, es war ein Bild von 300*900 auflösung, es ging aber schnell da er mit 600 Zeilen pro Sekunde in die Datenbank schrieb. (was mich sehr verwundert hat)
was willst Du denn damit bezwecken? Die bilder Pixelweise in einer datenbank speichern? Warum? Was immer du willst, geht vielleicht auch anders...
Es ging um ein Spiel, eine große Karte solls werden, Japan um genau zu sein, ich benötigte das Wasser und die "Position" von dem Wasser in der Datenbank, damit man es später anzeigen kann wenn man da hin geht.
Und es wäre schwierig gewesen das alles so in die DB reinzutippen :)
Wegen meiner Ausführung, "ich hab gif aber kanns ändern" und den anderen Sachen, das meinte ich wegen den anderen Usern hier im Forum die nicht gerade nett sind und jedes Wort (sei es im einen satz gif im anderen jpeg) auf die Goldwaage tun.
Danke noch mal für deine Hilfe.
Hi
Danke noch mal für deine Hilfe.
Och klar. Ich helf gern mal nicht. :)
Hm, wie hastn das gemacht? Naja. Mein Versuch liegt nun auch schon *rechne* 6 oder 7 Jahre zurueck, auf Webspace von 1&1. Heute ist alles anders. Mehr Power, wie Tim Tailor zu sagen pflegt.
Hi
Danke noch mal für deine Hilfe.
Och klar. Ich helf gern mal nicht. :)
Hm, wie hastn das gemacht? Naja. Mein Versuch liegt nun auch schon *rechne* 6 oder 7 Jahre zurueck, auf Webspace von 1&1. Heute ist alles anders. Mehr Power, wie Tim Tailor zu sagen pflegt.
$image = imagecreatefrompng("Bild.PNG");
$Zähler1 = 0;
while ($Zähler1 <= 900)
{
$Zähler1++;
while ($Zähler2 <= 130)
{
$Zähler2++;
if (imagecolorat($image,$Zähler2,$Zähler1) == 0)
{
$sql = "INSERT INTO $DBName
.$TabelleObjekte
(PosX
, PosY
) VALUES ("$Zähler2", "$Zähler1");";
mysql_query($sql);
}
}
$Zähler2 = 0;
}
Ich weiß, eine For-Schleife wäre vermutlich besser gewesen, aber da das war irgendwann gegen um 3 als ich das gemacht hab und ich war "etwas" müde um klar zu denken.
Leider brachte es nicht wirklich das gewünschte Ergebnis von der Performance.
Das war jetzt die erste Version davon in etwa, jetzt nehm ich es aber nicht mehr um in die DB zu schreiben sondern umd die Datei direkt auszulesen.
Ich habe getestet und das Bild den Bildabschnitt per imagecolorat auszulesen ist besser als aus der Datenbank zu nehmen.