- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-10-2009, 12:05
Lennynero
 Registrierter Benutzer
Links : Onlinestatus : Lennynero ist offline
Registriert seit: Sep 2007
Beiträge: 121
Blog-Einträge: 1
Lennynero ist zur Zeit noch ein unbeschriebenes Blatt
Standard Kompremierung eines JPEG mit PHP-Bordmitteln auslesen

Hallo,

gibt es eine Möglichkeit mit den Bordmitteln von PHP die Kompremierungsqualität eines JPEGs auszulesen?

Herzliche Grüße,
markus
Mit Zitat antworten
  #2 (permalink)  
Alt 19-10-2009, 12:19
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

das kann ich mit einem klaren "jein" beantworten.

Diese Qualitätseinstellung bezieht sich auf die Quantisierung beim Encoden, also Speichern eines Bildes, wird aber selbst nicht in der Datei gespeichert. Programme, die behaupten "das Originalbild hatte 85%" errechnen das anhand statistischer Merkmale der komprimierten Bilddaten, was aber sehr ungenau ist und genau aus diesem Grund in jedem Programm einen anderen Wert ergibt.

Wenn du also diese komplizierten Statistik-Berechnungen (die man mit PHP theoretisch durchaus machen könnte) auf dich nehmen willst, um einen nichtssagenden Wert rauszubekommen, dann "ja".

Wenn du einen exakten Wert erwartest, den du irgendwo codiert in den JPEG-Header-Feldern findest, dann "nein".

Gruß,

Amica

Geändert von AmicaNoctis (19-10-2009 um 12:52 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 19-10-2009, 13:51
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn's dir ganz doll wichtig ist und dir die Schnelligkeit egal ist, hab ich hier noch nen sehr, sehr unperformanten Skriptcode, der das Bild solange mit absteigender Qualität speichert, bis die Dateigröße ungefähr übereinstimmt:

PHP-Code:
    $file = isset($_GET["path"]) ? $_GET["path"] : null;
    if (
$file) {
        
$size filesize($file);
        
$img imagecreatefromjpeg($file);
        for (
$i 0$i 100$i += 5) {
            
ob_start();
            
imagejpeg($imgnull100 $i);
            
$data ob_get_clean();
            if (
strlen($data) < $size) {
                echo(
"Estimated quality: " . (100 $i) . "%<br />\n");
                break;
            }
        }
    } 
Aber wie gesagt, das was da raus kommt, hat nicht wirklich irgendeine Bedeutung.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-10-2009, 13:54
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.490
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Wenn's dir ganz doll wichtig ist und dir die Schnelligkeit egal ist, hab ich hier noch nen sehr, sehr unperformanten Skriptcode, der das Bild solange mit absteigender Qualität speichert, bis die Dateigröße ungefähr übereinstimmt:

PHP-Code:
    $file = isset($_GET["path"]) ? $_GET["path"] : null;
    if (
$file) {
        
$size filesize($file);
        
$img imagecreatefromjpeg($file);
        for (
$i 0$i 100$i += 5) {
            
ob_start();
            
imagejpeg($imgnull100 $i);
            
$data ob_get_clean();
            if (
strlen($data) < $size) {
                echo(
"Estimated quality: " . (100 $i) . "%<br />\n");
                break;
            }
        }
    } 
Aber wie gesagt, das was da raus kommt, hat nicht wirklich irgendeine Bedeutung.
Dafür bräuchtest du aber die unkomprimierte Originaldatei. Eine bereits komprimierte Datei nochmal zu komprimieren ist ziemlich sinnlos.
Mit Zitat antworten
  #5 (permalink)  
Alt 19-10-2009, 14:04
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Dafür bräuchtest du aber die unkomprimierte Originaldatei. Eine bereits komprimierte Datei nochmal zu komprimieren ist ziemlich sinnlos.
Das stimmt zwar, aber für den Vergleich der Dateigröße haut es trotzdem hin, da ich ja prüfe, ab welcher Qualität (absteigend) sie kleiner wird als die (komprimierte) Ausgangsdatei. Den Hinweis auf die dennoch mangelnde Aussagekraft dieses Wertes hatte ich ja ebenfalls schon gegeben.
Mit Zitat antworten
  #6 (permalink)  
Alt 19-10-2009, 14:20
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ok, vergiss das Script. H3ll hatte Recht. Zwischen 100% und 60% haut das so halbwegs hin, aber ich hab grad mal nen Extremfall getestet: Eine Datei mit 5% gespeichert und durch das Skript gejagt. Ergebnis: 70%

Also absolut unbrauchbar. Sorry für das Wecken falscher Hoffnungen!
Mit Zitat antworten
  #7 (permalink)  
Alt 19-10-2009, 14:56
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:

@AmicaNoctis: Für den Support, den Du hier im Forum bietest, könnte man Geld verlangen. Ernsthaft - Hut ab!

Mit Zitat antworten
  #8 (permalink)  
Alt 19-10-2009, 14:59
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

OffTopic:
Sowas hört man gern. Dankeschön
Mit Zitat antworten
  #9 (permalink)  
Alt 19-10-2009, 17:10
Lennynero
 Registrierter Benutzer
Links : Onlinestatus : Lennynero ist offline
Registriert seit: Sep 2007
Beiträge: 121
Blog-Einträge: 1
Lennynero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auch hier nochmal: Vielen Dank!
Mit Zitat antworten
  #10 (permalink)  
Alt 19-10-2009, 18:49
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Problem mit der Dateigrößen-Vergleichslösung ist allerdings auch, dass so ein JPeg über nette Metatags verfügen kann. Die Idee ist aber sehr kreativ
Mit Zitat antworten
  #11 (permalink)  
Alt 20-10-2009, 09:56
Lennynero
 Registrierter Benutzer
Links : Onlinestatus : Lennynero ist offline
Registriert seit: Sep 2007
Beiträge: 121
Blog-Einträge: 1
Lennynero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von PHP-Desaster Beitrag anzeigen
Problem mit der Dateigrößen-Vergleichslösung ist allerdings auch, dass so ein JPeg über nette Metatags verfügen kann. Die Idee ist aber sehr kreativ
An den EXIF-Daten bin ich gerade am werkeln, bei 4000 Dateien konnte ich durch das entfernen der Metatags (Mithilfe von "jpegtrans") immerhin knappe 40 MB einsparen.
Mit Zitat antworten
  #12 (permalink)  
Alt 20-10-2009, 10:48
Lennynero
 Registrierter Benutzer
Links : Onlinestatus : Lennynero ist offline
Registriert seit: Sep 2007
Beiträge: 121
Blog-Einträge: 1
Lennynero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gibt es vielleicht ein kleines Kommandozeilentool, das mir zumindest annähernd perfomant ein Ergebnis zurückliefern kann (es sollen ca. 10.000 Images gescannt werden)?

Im Grunde muss es auch nicht so in die Tiefe gehen, denn mich interessieren nur die Bilder die (wahrscheinlich) mit voller Qualität gespeichert worden sind?
Mit Zitat antworten
  #13 (permalink)  
Alt 20-10-2009, 13:18
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

jpegdump
Mit Zitat antworten
  #14 (permalink)  
Alt 20-10-2009, 14:07
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
jpegdump
Das ermittelt aber auch keine Qualitätsangabe.
Mit Zitat antworten
  #15 (permalink)  
Alt 20-10-2009, 14:45
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich meine dieses: Jpegdump.c - dump JPEG marker information
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auslesen eines best. Textteiles Miranda PHP Developer Forum 26 07-10-2009 17:53
Helligkeit eines Bildes auslesen timste PHP Developer Forum 3 01-08-2009 23:11
Frage zum Auslesen eines Verzeichniss merlin_76 PHP Developer Forum 3 08-04-2004 18:50
Länge eines Strings auslesen chefdesigner PHP Developer Forum 3 30-10-2003 13:25
[PHP]:Problem mit Auslesen eines Verzeichnisses der_Behr PHP Developer Forum 1 28-07-2003 22:27

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP oder Spanisch lernen? Oder doch beides?
PHP oder Spanisch lernen? Oder doch beides?Fremdsprachen sind für Entwickler enorm wichtig. Ohne Englisch geht fast nichts.

28.11.2017 | Berni

Mit Web-Templates Geld verdienen
Mit Web-Templates Geld verdienenWeb-Templates gewinnen immer mehr an Bedeutung. Erfahre hier, wie du dir mit dem TemplateMonster-Marktplatz neue Verkaufswege erschließen kannst.

17.10.2017 | Berni


 

Aktuelle PHP Scripte

CitusCMS ansehen CitusCMS

Für kleine und mittlere Webpräsenzen. Sehr einfache Bedienung und Pflege. schnell* kompakt *flexibel

04.12.2017 leprimo | Kategorie: PHP/ CMS
Adtract - Banner-Management-System

Das Banner-Management-System der Extraklasse. Für alle Webmaster, die kinderleicht Banner und ALLE anderen Werbeformate (Flash, PopUps, etc.) einrichten und Werbende mit detaillierten Reportings überraschen wollen. Schluss mit lahmen CGI-Scripts, denn Adt

03.12.2017 michagu@ | Kategorie: PHP/ Bannerverwaltung
belbit LiveSupport ansehen belbit LiveSupport

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

03.12.2017 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:29 Uhr.