erik: Runde Ecken für Thumbnails?

hat jemand ne Idee, ob man mit php eine Funktion schreiben kann, die dass für einen übernimmt?
ich denke da konkret an folgende vom benutzer des Galerie-Scripts festzulegende Werte:

  1. Radius (also bspw einen gefärbten Pixel pro Ecke, 3 gefärbte pixel pro Ecke, jeweils 3 waagrechte und horizontal gefärbte pixel plus einen zusätzlichen pixel, usw.)
  2. Farbe soll man selbst festlegen können

ist soetwas sehr kompliziert zu schreiben? es handelt sich um verschieden-formatige thumbnails und groß-ansichten, ich muss also mit get_imageheight, usw. arbeiten, richtig?
kann mir da jemand tipps geben, welche php-funktionen ich benötige? bzw. wie das von der logik auszusehen hat (bildgröße bestimmen -> pixel schreiben -> speichern) und wie stell ich sicher, dass das nicht jedesmal gemacht wird?
wär fein danke!!!

  1. Hi erik,

    hat jemand ne Idee, ob man mit php eine Funktion schreiben kann, die dass für einen übernimmt?
    ich denke da konkret an folgende vom benutzer des Galerie-Scripts festzulegende Werte:

    1. Radius (also bspw einen gefärbten Pixel pro Ecke, 3 gefärbte pixel pro Ecke, jeweils 3 waagrechte und horizontal gefärbte pixel plus einen zusätzlichen pixel, usw.)
    2. Farbe soll man selbst festlegen können

    So spontan fallen mir folgende Möglichkeiten ein:
    1. Du färbst jedes Pixel einzeln - das geht mit imagesetpixel(), dann brauchst du
       aber ein paar mathematische Algorithmen mit denen du rausbekommest, welche Pixel du alle
       färben musst
    2. Ich weiß nicht ob das geht, aber vielleicht wäre es möglich, dass du eine Grafikvorlage
       hast, die lediglich die abgerundete Ecke ist und der rest ist transparent - dann würde
       man diese Vorlage nur noch auf das Original legen, aber wie gesagt, keine Ahnung, ob so
       etwas möglich ist.
    3. Schau dir mal die Funktionen imageellipse() und dort verlinkte Funktionen.
       Vielleicht gelingt es dir mit denen einen gewünschten Effekt zu erreichen.

    ist soetwas sehr kompliziert zu schreiben? es handelt sich um verschieden-formatige thumbnails und groß-ansichten, ich muss also mit get_imageheight, usw. arbeiten, richtig?

    Richtig, du musst feststellen, wie groß dein Bild ist und an welche Positionen dann die runden Ecken hinmüssen. Ein paar Ideen dies zu realisieren, habe ich dir oben gegeben - selber gemacht habe ich es aber noch nicht und ich denke, dass das auch nicht so ganz einfach sein wird.

    kann mir da jemand tipps geben, welche php-funktionen ich benötige? bzw. wie das von der logik auszusehen hat (bildgröße bestimmen -> pixel schreiben -> speichern) und wie stell ich sicher, dass das nicht jedesmal gemacht wird?

    Schau dir einfach mal alle Grafik-Funktionen von PHP an und deren Beschreibungen. Damit das Bild nicht bei jedem Aufruf neu erstellt werden muss, musst du das Bild cachen, d.h. du erzeugst die Version des Bildes mit den runden Ecken einmal (z.B. beim Upload) und speicherst das Bild dann mit einer Funktion wie imagejpeg() auf dem Server. Bei späteren Aufrufen wird dann nur noch diese Datei ausgegeben.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Crypt::PasswdMD5 jetzt auch in PHP
    Ich finde, der IE ist eine super Software. Nur eben nicht als Browser. (Manuel B.)