You are not logged in.

Sinan

Senior Schreiberling

  • "Sinan" is male
  • "Sinan" started this thread

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

1

Thursday, August 2nd 2007, 1:45pm

PHP - Bildfarbe ändern

Hallo,

Wie kann ich mit PHP die Farbe eines Bildes ändern?
Ich habe diese Funktion gefunden

Quoted


int imagecolorallocate ( resource $im, int $red, int $green, int $blue )
ImageColorAllocate() gibt eine Farb-ID, die durch die angegebenen RGB-Werte bestimmt wird, zurück. Der Parameter im wird ihnen von der imagecreate()-Funktion zurück gegeben. ImageColorAllocate() muss für jede Farbe aufgerufen werden, die innerhalb der Grafik im verwendet werden soll.

Ich möchte aber das Bild nicht neu mit der imagecreate()-Funktion erzeugen, sondern ein Vorhandens Bild auf dem Rechner ändern.
Ich suche also eine Funktion, die als Eingabeparameter der Bildpfad und eine Farbe erwartet. Gibt es sowas? Lässt sich das über Umwege realisieren?

Danke
With great power comes great responsibility

CrissCross

Erfahrener Schreiberling

  • "CrissCross" is male

Posts: 282

Date of registration: Feb 15th 2005

2

Thursday, August 2nd 2007, 2:02pm

RE: PHP - Bildfarbe ändern

Wenn du ein vorhandenes Bild auf dem Server ändern willst, kannst du trotzdem die Funktion imagecolorallocate benutzen: Du kannst ja ein neues Bild aus einem schon vorhandenen Bild erzeugen (mit der Funktion
ImageCreateFromJPEG z.B.), dann kannst du es bearbeiten und schließlich speichern.
"Technology is easy - people are hard."

(John Gage - Sun Microsystems zum Thema warum IT-Projekte scheitern)

Ray-D

Alter Hase

  • "Ray-D" is male

Posts: 690

Date of registration: Oct 9th 2002

Location: Zimbabwe-Island Ost Beiträge: 3.427

Occupation: Informatiker

3

Thursday, August 2nd 2007, 4:09pm

Hi Sinan, ich habe mal mit PHP aus Farbbildern Graubilder generiert (wobei ich die einzelnen Farbkanäle unterschiedlich stark gewichtet habe). Der Code dazu sieht wie folgt aus. Vielleicht hilft Dir das ja weiter

[php]
$bild = imagecreatefromjpeg($pfad);

$x = imagesx($bild);
$y = imagesy($bild);

for($i=0; $i<$y; $i++) {
for($j=0; $j<$x; $j++) {
$pos = imagecolorat($bild, $j, $i);
$f = imagecolorsforindex($bild, $pos);
$gst = $f["red"]*0.15 + $f["green"]*0.5 + $f["blue"]*0.35;
$farbe = imagecolorresolve($bild, $gst, $gst, $gst);
imagesetpixel($bild, $j, $i, $farbe);
}
}

imagejpeg($bild);


[/php]
"ob ich alles weiss, was wir wissen, weiss ich auch nicht, aber ich weiss natürlich niemand von uns weiss etwas was er nicht weiss" - Wolgang Schäuble
Freiheit wird nicht erbettelt, sondern erkämpft


Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Ray-D« (Heute, 04:29)

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male

Posts: 244

Date of registration: Oct 11th 2005

4

Thursday, August 2nd 2007, 4:20pm

Was ist die "Farbe eines Bildes"?
Ein Bild besteht in den meisten Fällen aus mehr als einer Farbe :D

Sinan

Senior Schreiberling

  • "Sinan" is male
  • "Sinan" started this thread

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

5

Thursday, August 2nd 2007, 4:41pm

Quoted

Original von BLUESCREEN
Was ist die "Farbe eines Bildes"?
Ein Bild besteht in den meisten Fällen aus mehr als einer Farbe :D

Eben, in den meisten Fällen! In meinem Fall nicht ;)
Danke für die Antworten.
With great power comes great responsibility