Bilder automatisch verkleinern

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

Hier einige Gedanken dazu:

Wann skalieren/rekomprimieren?
- Dateigröße > 250 kByte
- max(Breite, Höhe) > 750 Pixel

So skalieren, dass
- Dateigröße <= 250 kByte
- max(Breite, Höhe) <= 750

Die 750 Pixel Maximaldimension sind so gewählt, dass das Bild gerade so ins OC_Listing-Layout passt.

Die Skalierung sollte mit http://php.net/manual/de/function.imagecopyresampled.php machbar sein. Ich habe aber keine Ahnung, was das für eine Auswirkung auf die Serverlast hat.

Trotzdem benötigt man meiner Meinung nach noch eine maximale Uploadgröße um zu verhindern, dass uns jemand die Platte vollschreibt. Was würde man da nehmen? 5 MByte?
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
Benutzeravatar
pirate77
Large
Large
Beiträge: 1260
Registriert: 17.03.2012, 22:37

ich hab ja keine Ahnung von der Technik, aber das hatten wir doch schon mal im internen Forum zum Teil besprochen samt Überlegungen zur Ausführung...
http://forum.opencaching-network.org/http://localhost//viewtopic.php?t=4
[url=http://www.opencaching.de/viewprofile.php?userid=152708][img]http://www.opencaching.de/statpics/DE/152708.jpg[/img][/url]
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

[quote="pirate77"]
ich hab ja keine Ahnung von der Technik, aber das hatten wir doch schon mal im internen Forum zum Teil besprochen samt Überlegungen zur Ausführung...
http://forum.opencaching-network.org/http://localhost//viewtopic.php?t=4
[/quote]

Korrekt :(
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
dl6hbo

[quote="following"]
Ich finde eine automatische Verkleinerung auf jeden Fall sinnvoll. Steht bereits seit vier Jahren in der Todo-Liste:

[url=http://redmine.opencaching.de/issues/49]http://redmine.opencaching.de/issues/49[/url]
[/quote]

Für Thunderbird gibt es ein Plugin, das sowas tun kann. Vielleicht mag sich das jemand ja mal ansehen und sich dadurch anregen lassen ?
following

Wenn man Bilder per Klick auf den Thumbnail anzeigen lässt - egal ob Listing oder Log - machen auch mehr als 750 Pixel Breite Sinn. Das OC-Gesamtlayout hat 972 Pixel Breite. Abzüglich etwas Rand links und rechts vom Bild kann man ohne weiteres 920 Pixel Breite schön darstellen. (750 macht Sinn wenn beim Upload im Listing "Dieses Bild nicht separat anzeigen" angekreuzt ist.)

Wenn das Browserfenster größer ist, geht auch mehr.

GC skaliert meines Wissens auf maximal 2048 Pixel Breite/Höhe und lässt wesentlich größere Dateien zu als OC. Bei der GC.com-Performance fallen die zusätzlichen Ladezeiten kaum auf, aber auf der schnellen OC-Seite könnten so große Dateien schon lästig sein wenn man durch ne Galerie blättert. Plattenplatz und Traffic sind das kleinere Problem, wobei wir für so große Bilder langfristig schon nachrüsten müssten.


Ich tendiere zu irgendwas in der Größenordnung von 800 bis maximal 1024 Pixel.
Macht es Sinn, den Benutzer wählen zu lassen z.B.

[x] Bildbreite-/höhe beschränken auf  ( ) 600  (x) 750  ( ) 900  ( ) _____ Pixel

mit z.B. 1024 als Obergrenze, oder wäre das Feature-Overkill?

Wie sieht es denn mit dem JPEG-Komprimierungsfaktor aus? 10, 12, 15? Wenn dieser Faktor feststeht, kann man Tests mit typischen Motiven machen und schauen, welche Dateigrößen bei welcher Auflösung rauskommen.


[quote="flopp"]
Trotzdem benötigt man meiner Meinung nach noch eine maximale Uploadgröße um zu verhindern, dass uns jemand die Platte vollschreibt. Was würde man da nehmen? 5 MByte?
[/quote]

Beim Plattenplatz ist reichlich Spielraum, sind ja nur Temporärdateien die schnell wieder verschwinden. 100 MB wären kein Problem - allerdings kosten große Dateien Rechenzeit und Hauptspeicher für die Weiterverarbeitung.

Der Flaschenhals bei dem Ganzen ist der Hauptspeicher für die Bildskalierung! Es kam tatsächlich schon vor dass jemand 16 oder 20 Megapixel in 150 KB gepackt hat, und dann machte der Thumbnail-Generator die Grätsche und wir mussten dem PHP mehr Speicher genehmigen.

Also wenn eh maximal 20 Megapixel funktionieren, dann kann man die Dateigröße entsprechend limitieren. 15 MB?
following

Ich fänd's auf jeden Fall gut, wenn nicht zwangsweise skaliert wird sodass man auch eigene Formate verwenden kann, z.B. 1200 x 400 Panorama.

Durch 48 teilbare Limits sind optimal, weil sie sauber mit den gängigen Formaten 4:3, 16:9 und 3:2 funktionieren (weniger Schärfeverlust). 750 Pixel passen dann nicht, aber diese Zahl kann sich bei einem Redesign der Seite eh ändern.

Wie wäre es mit:

(x)  Bildbreite/-höhe automatisch beschränken auf  => Dropdown-Box
        klein: 576 Pixel
        mittel: 720 Pixel  -- Default
        groß: 912 Pixel
( )  Abmessungen selbst festlegen, Dateigröße max. 300 KB

Bei Option 1 wird ggf. skaliert, dezent nachgeschärft und mit Faktor 15 JPEG-Kompression gespeichert. Bei 720 Pixel kommen je nach Motiv ca. 150 bis 300 KB Dateigröße raus, bei 912 Pixel ca. 200 bis 400 KB. Wenn jemand mehr als 400 KB bie passender Größe schickt (zu niedrige JPEG-Komprimierung) wird nur geladen, sehr dezent nachgeschärft und mt Faktor 15 gespeichert.

Bei Option 2 wird nur die Größe überprüft und es erscheint ggf. eine Fehlermeldung.
Zuletzt geändert von following am 13.08.2013, 22:57, insgesamt 1-mal geändert.
Benutzeravatar
flopp
Vereinsmitglied
Vereinsmitglied
Beiträge: 1008
Registriert: 18.03.2012, 17:02

Für mich hört sich das alles vernünftig an.

HellstormDE hatte doch schon begonnen an der Skalierungsfunktion zu arbeiten, wenn ich mich recht erinnere. Haben wir den Code?
[url=http://www.flopp-caching.de/]Flopps Tolle Karte[/url] | [url=http://www.florian-pigorsch.de/oc]OC[/url] | [url=http://www.florian-pigorsch.de/gc]GC[/url] | [url=http://florian-pigorsch.de/+]G+[/url] | [url=http://florian-pigorsch.de/t]Tw[/url] | [url=http://florian-pigorsch.de/fb]Fb[/url]
Steingesicht

Ich würde da gar nicht zu viele Optionen anbieten - das ist IMHO Feature-Overkill - einfach zwei Optionen anbieten:

(x)  Bildbreite/-höhe automatisch beschränken auf  912 Pixel
( )  Abmessungen selbst festlegen, Dateigröße max. 300 KB
following

Ein 720er Default fände ich schon nett, weil es ne Menge Plattenplatz spart und dann die vielen Nahaufnahmen nicht so riesengroß werden. Ob da nur ne Zahl steht oder ne Zahl in Dropdown-Box macht optisch kaum Unterschied ...

Dafür könnte man einige von den Erläuterungen auf der Upload-Seite weglassen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
following

[quote="flopp"]
HellstormDE hatte doch schon begonnen an der Skalierungsfunktion zu arbeiten, wenn ich mich recht erinnere. Haben wir den Code?
[/quote]

nein, und ich konnte ihn seitdem auch nicht mehr erreichen

Eine Bildskalierungsfunktion haben wir ja bereits im Thumbnail-Generator. Die Frage ist nur wie man das mit dem Schärfen hinbekommt. Die beste Nachschärffunktioni für skalierte Bilder die ich kenne ist die "unsharp mask" im Paint Shop Pro, eingestellt auf ca. 0,5 Pixel Radius und 50% Stärke.
Zuletzt geändert von following am 14.08.2013, 00:21, insgesamt 1-mal geändert.
AlfredSK

[quote="following"]
Ich fänd's auf jeden Fall gut, wenn nicht zwangsweise skaliert wird sodass man auch eigene Formate verwenden kann, z.B. 1200 x 400 Panorama.

Durch 48 teilbare Limits sind optimal, weil sie sauber mit den gängigen Formaten 4:3, 16:9 und 3:2 funktionieren (weniger Schärfeverlust). 750 Pixel passen dann nicht, aber diese Zahl kann sich bei einem Redesign der Seite eh ändern.

Wie wäre es mit:

(x)  Bildbreite/-höhe automatisch beschränken auf  => Dropdown-Box
        klein: 576 Pixel
        mittel: 720 Pixel  -- Default
        groß: 912 Pixel
( )  Abmessungen selbst festlegen, Dateigröße max. 300 KB

Bei Option 1 wird ggf. skaliert, dezent nachgeschärft und mit Faktor 15 JPEG-Kompression gespeichert. Bei 720 Pixel kommen je nach Motiv ca. 150 bis 300 KB Dateigröße raus, bei 912 Pixel ca. 200 bis 400 KB. Wenn jemand mehr als 400 KB bie passender Größe schickt (zu niedrige JPEG-Komprimierung) wird nur geladen, sehr dezent nachgeschärft und mt Faktor 15 gespeichert.

Bei Option 2 wird nur die Größe überprüft und es erscheint ggf. eine Fehlermeldung.
[/quote]
Ich finde den Vorschlag rundherum gut. Zwei Optionen, der Rest hinter Dropdown verborgen, müsste auch sehr übersichtlich sein. Gefällt mir.

Beim automatischen Nachschärfen bitte vorsichtig sein. Bei qualitativ schlechterem Ausgangsmaterial können zu "scharfe" Einstellungen wirklich hässliche Effekte produzieren.

VG Alfred
Steingesicht

[quote="following"]Dafür könnte man einige von den Erläuterungen auf der Upload-Seite weglassen.[/quote]
Ah OK. Ich hab mir das vorher nicht so recht vorstellen können. In dem Beispiel sieht das auch recht aufgeräumt aus. Wenn das mit dem Plattenplatz relevant ist, dann sollten die 720 auch ruhig als default bleiben.
Benutzeravatar
4_Vs
Vereinsmitglied
Vereinsmitglied
Beiträge: 3150
Registriert: 18.03.2012, 07:25

Wir haben kein Plattenplatzproblem und werden es auch nie haben ...
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)
following

[quote="4_Vs"]
Wir haben kein Plattenplatzproblem und werden es auch nie haben ...
[/quote]

Ich hatte etwas von 100 GB kostenpflichtigem Backupspeicher in Erinnerung; Bildupload aktuell ca. 2 GB pro Jahr, Bestand ca. 8 GB. Das wäre dann schon relevant wenn es wesentlich größere und mehr Bilder würden. Wir halten mehrere Backupsätze vor.

Aber in der aktuellen Angebotsliste des Providers steht 500 GB, und für 10€ im Monat kann man aufstocken auf 2000 GB. Damit ist das Thema "Plattenplatz" dann wirklich kein Thema.
following

Mit dem Faktor 48 habe ich mich auch geirrt. Die Unschärfe ensteht durch das Verkleinern ansich. Wenn das Seitenverhältnis nicht aufgeht entsteht schlimmstenfalls eine vertikale Verzerrung um einen halben Pixel... das ist egal.

Also nochmal von vorne:

- Wie groß sollten die Dateien maximal werden, damit der Abruf auch auf mobilen Geräten noch schön schnell bleibt?

- Welche Abmessungen sind sinnvoll?

Wir könnten z.B. 600/720/900/1200 als Limitoption anbieten und 500 KB erlauben. Ich schätze dass wir dann im Schnitt bei ca. 300 KB Bildgröße rauskommen werden, doppelt so viel wie jetzt, also im Schnitt doppelt so lange Bildladezeiten.
Antworten