Bilderzeugung vorberechnen

Hi Leute…

ich such grade nach einer Möglichkeit zu berechnen, wie gross ein ausgegebenes Bild werden wird.
Dazu ist folgende Grundlage gegeben…
Ein Bild wird hochgeladen. Erlaubte Formate sind dabei jpg, gif und png.
Dieses Bild wird dann akzeptiert, wenn es gewisse Restiktionen erfüllt.
Sprich es wird unverändert gespeichert. Wenn es aber gegen eine der 4 folgenden Restriktionen verstösst werden sondermassnahmen ergriffen.

  1. Falscher Dateityp -> Datei wird abgewiesen
  2. Falsche Höhe -> Datei wird resampled und gespeichert
  3. Falsche Breite -> Datei wird resampled und gespeichert
  4. Falsche Dateigrösse -> Datei wird als jpg gespeichert

für die Schritte 2-4 ergibt sich damit aber das Problem, dass das ausgegebene Bild wiederum gegen 4. verstossen könnte.
Da mit imagejpeg gespeichert wird kann man ja eine qualität angeben die man runtersetzen könnte.
Nur - kann man vorher rausfinden welche Qualität man einstellen müsste, damit die Dateigrösse unter einem bestimmten Wert liegt?
Oder müsste man dazu speichern, auslesen, drüberspeichern etcpp bis es passt?

Ich bin für alle Tipps dankbar.
Munich

  1. Falscher Dateityp -> Datei wird abgewiesen
  2. Falsche Höhe -> Datei wird resampled und gespeichert
  3. Falsche Breite -> Datei wird resampled und gespeichert
  4. Falsche Dateigrösse -> Datei wird als jpg gespeichert

also zuersteinmal wollt ich mal wissen, wie du resamplest?
denn wenn du die verhältnisse lässt, ein bsp:

bild - 100x50, jpg
das bild soll 50x50 sein, jpg is korrekt.
punkt 1: jpg - weiter
punkt 2: uh, zu hoch! also resize auf 50x25
punkt 3: uh, nicht breit genug! also resize auf 100x50

also dann war das ganze für die katz.
wenn man sich aber nich an die verhältnisse hält, is das bild nicht mehr zu gebrauchen (gequetscht, zusammengestaucht,…)
ich würde das ganze nur von einer grösse abhängig machen. (ich z.b. mache in meiner galerie alles auf die gleiche breite, höhe is im prinzip egal)

dann weitere frage:
wofür ist das? denn normalerweise ist resize nur zum verkleinern (thumbnails, vorschauen,…)! bei vergrössern verpixelt das bild ja auch hoffnungslos. und das bei verkleinern die dateigrösse kleiner wird, sollte klar sein…

mfg
Geisterkarle

berechtige Frage

also zuersteinmal wollt ich mal wissen, wie du resamplest?
denn wenn du die verhältnisse lässt, ein bsp:

bild - 100x50, jpg
das bild soll 50x50 sein, jpg is korrekt.
punkt 1: jpg - weiter
punkt 2: uh, zu hoch! also resize auf 50x25
punkt 3: uh, nicht breit genug! also resize auf 100x50

also dann war das ganze für die katz.

ist klar. Ne ich mach die Bilder nur kleiner, weil bei Digicam-Bildern oft mal 1000pixel und mehr haben und das wäre im browser doof anzeigen zu lassen also wird runtergerechnet…
im detail läuft es so ab (allerdings in stichpunkten)
check1: ist das Bild zu breit
check2: ist das Bild zu hoch
wenn check1 oder check2 alarm geben wird berechnet welcher Faktor kleiner ist und anschliessend wird das passende höhen/breitenverhältnis berechnet.
Danach wird das Bild dann resampled…

wenn man sich aber nich an die verhältnisse hält, is das bild
nicht mehr zu gebrauchen (gequetscht, zusammengestaucht,…)
ich würde das ganze nur von einer grösse abhängig machen. (ich
z.b. mache in meiner galerie alles auf die gleiche breite,
höhe is im prinzip egal)

stimme ich Dir prinzipiell zu, aber naja… muss halt sein ;-/

dann weitere frage:
wofür ist das? denn normalerweise ist resize nur zum
verkleinern (thumbnails, vorschauen,…)! bei vergrössern
verpixelt das bild ja auch hoffnungslos. und das bei
verkleinern die dateigrösse kleiner wird, sollte klar sein…

jupp, klar. Aber kann ich sicherstellen, dass es unter einer bestimmten Grösse bleibt? Ist der Inhalt des Bildes egal oder spielt der eine Rolle? Ich würde sagen er spielt eine Rolle…
Es wird jedenfalls nur verkleinert - vergrösserungen könnte man ja leicht mit dem Browser machen wenns soweit ist… aber schrumpfen kriegen manche da nicht so gut hin bzw ist das Dateivolumen dann immernoch da…

Danke aber schon mal :wink:

ohne viel worte:

schau mal ob du hier was findest:
http://www.google.com/custom?domains=www.phpclasses…

musste nichmal selber proggen :wink:

das z.b. könnte die lösung sein:
http://www.phpclasses.org/browse/package/1261.html

hf
Geisterkarle

1 Like

Danke
klasse Link. Dafür nen Stern :wink:

Aber das wahre ist es nicht - wie gesagt ist mein Problem ja die Dateigrösse und nicht die Bildabmessungen - das krieg ich ja hin :wink:
Nur weiss ich nicht wie ich sicherstelle, dass ein Bild auch nur eine bestimmte grösse an Speicher auf der Festplatte verbraucht…

Hallo MunichFreak,

das Problem ist, dass die Kompression nicht bei allen Bildern den selben Grad hat. Es gibt also Bilder, die lassen sich leicht herunterkomprimieren, andere nicht. Bei manchen Bildern ist der Unterschied (Grössentechnisch) zwischen einer hohen Qualitätsstufe und einer niedrigeren nicht so gross, bei anderen widerum …

Was du machen kannst ist, die Dateigrösse eines hypothetischen bmp-Bildes berechnen und danach zu schätzen, wie gross das komprimierte Bild sein wird. Die Rechnung für ein bmp-Bild sollten klar sein, oder?

Gruss, Omar Abo-Namous

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]