Runde Ecken für Thumbnails?
erik
- php
0 Dennis
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:
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!!!
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:
- 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.)
- 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.