wie kann ich ein 1x1px große farbiges gif erstellen und speichern

E

encom

Hallo, ich will ein 1 x 1 px großes gif erstellen und abspeichern.
die Farbe wird in folgendem Format über ein eingabefeld angegeben (FF55DD)

Wie kann ich dieses gif nun erzeugen und abspeichern?

Danke
 
Wenn du eine GD version vor 1.6 hast welche noch die Gif fähigkeit besitzt (ist schwer zu bekommen weil die gif library die damals benutzt wurde nicht lizenziert ist und damit in vielen ländern illegal) dann gehts...

Mit version 1.6 wurde die GIF fähigkeit entfernt.

Leider steht auf dem LZW algoritmus der in GIF benutzt wird ein softwarepatent, und daher musste dir GIF funktion aus der GD entfernt werden...

Wenn du jedoch eine solche library bekommst steht dem nix im wege, ansonsten benutzt du einfach die GD2 in verbindung mit PNG oder JPEG.

funktionieren tut es so:
PHP:
if(!extension_loaded("gd")) { //prüfen ob die GD schon geladen ist
    if(!dl("php_gd.dll")) //GD bibliothek nachladen
    {
        die("Could not load GD library"); //GD konnte nicht geladen werden.
    }
}
$hImage = @imagecreate(1, 1) or die("Could not create a new image"); //bild erzeugen
$hImageColor = ImageColorAllocate ($hImage, $rot, $gruen, $blau); //farbe in die farbpalette eintragen.
ImageFill($hImage, 0, 0, $hImageColor); //bild ausfüllen
ImageGif($hImage, "dateiname.gif"); //bild in datei schreiben, wenn das nicht funktionieren alternativen: ImageJpeg, ImagePng
 
Danke für deine schnelle Antwort,

Eine Frage bleibt aber offen, ich hab e gelesen dass man für die Farbwerte nur zahlen angeben kann. Wie kann ich also die RGB-Werte FF54D5 in die passenden Tahlenwerte umwandeln?

Danke
 
Ja das ist mir klar,

der user gibt aber die normalen rgbwerte als ffffff in ein eingabefeld ein.
Nun sollte es eine Möglichkeit geben die Werte automatisch umwandeln zu lassen.
 
PHP:
<?
function hex2dec($hex) {
  $color = str_replace('#', '', $hex);
  $ret = array(
   'r' => hexdec(substr($color, 0, 2)),
   'g' => hexdec(substr($color, 2, 2)),
   'b' => hexdec(substr($color, 4, 2))
  );
  return $ret;
}

/*** Example:
print_r(hex2dec('3D58BE'));

or

print_r(hex2dec('#3D58BE'));

will return

Array
(
  [r] => 61
  [g] => 88
  [b] => 190
)
***/
?>

Hab ich irgendwo im Web gefunden.
Ich denke, das funktioniert ganz gut.

Gruß
Martin
 
:offtopic: :

hex2dec! WEICHEIER ;)

Mathe ganz allgemein:

Eine Zahl xyz im System b hat den folgenden Dezimalwert:

Zahl xyz -> z steht an 0-ter Stelle, y an 1. und x an 2.

nun:
Dezimalwert = wert*(basis^stelle) + wert2*(basis^stelle2) .. blabla

;)
 
Zuletzt bearbeitet:
Zurück