PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   Support (http://www.selfphp.de/forum/forumdisplay.php?f=17)
-   -   Code 62 - Vorschaubilder erstellen - Fehlerhaft? (http://www.selfphp.de/forum/showthread.php?t=23283)

klausguenter 20.05.2010 22:33:46

Code 62 - Vorschaubilder erstellen - Fehlerhaft?
 
Hallo,

versuche grad diesen Code zu verstehen:

http://www.selfphp.de/kochbuch/kochbuch.php?code=62

Wenn ich da probehalber Zahlen einsetze, kommt da ein falsches Ergebnis raus.
z.B.

Reale Bildgrösse:
Breite: 250px
Höhe: 300px

gewollte Bildgrösse:
max Breite: 148px
max Höhe: 210px

Wenn ich das in Zeile 32 eingebe (welches Mathe-Ass hat eigentlich die Klammern in die Zeile geschrieben??) erhalte ich für die neue Breite einen Wert von 175px.
Ist also fast 20 Prozent größer als die maximale Vorgabe.
Mach ich da was falsch?

Danke vorab & Gruß,
KG

rarios 21.05.2010 00:53:21

AW: Code 62 - Vorschaubilder erstellen - Fehlerhaft?
 
Zitat:

welches Mathe-Ass hat eigentlich die Klammern in die Zeile geschrieben??
Verboten? Nö! Ich mein wenn Du ein größeres Mathe-Ass bist, dann hättest Du Dir Deine simple Frage selber beantworten können...

Also zu Deinem Problem:
Das Skript erstellt Dir je nach Bildformat (Quer/Hoch) eine proportionale Grafikgöße.
Bedeutet: Du kannst immer nur einen exakten maximalen Wunschwert erreichen.
Entweder wird die Höhe neu berechnet oder die Breite.
Bild Querformat: $height = ($width / $info[0]) * $info[1];
Bild Hochformat: $width = ($height / $info[1]) * $info[0];

In deinem Falle ist es Typ 2 Bild Hochformat. Rechnung: 210 (max. Höhe) / 300 (reelle Höhe) * 250 (reelle Breite) = 175 (Endergebnis Breite)
Somit hast Du eine Grafik im Format 175x210.
PHP-Code:

 if ($width && ($info[0] < $info[1])) 
    {
        
$width = ($height $info[1]) * $info[0];
    } 
    else 
    {
        
$height = ($width $info[0]) * $info[1];
    } 


klausguenter 21.05.2010 04:49:24

AW: Code 62 - Vorschaubilder erstellen - Fehlerhaft?
 
Zitat:

Zitat:
welches Mathe-Ass hat eigentlich die Klammern in die Zeile geschrieben??

Verboten? Nö!
...Fehler sollte man nicht auch noch verteidigen.
In diesem Fall schaden die Klammern nicht, aber sie sind überflüssig.
Und überflüssiger Code ist nie gut - so sehe ich das.


Zum Thema:
Ich habe die IF-Abfrage mal geändert.
So werden BEIDE maximalen Vorgaben nicht überschritten (was glaub ich in der Praxis eher gewünscht ist).
Denn häufig hat man ja z.B. einen Rahmen für Vorschaubilder, der nicht gesprengt werden soll, o.ä.

PHP-Code:

    if($width $info[0]){
        
$faktor $width $info[0];
        
$height $info[1] * $faktor;
    }elseif(
$height $info[1]){
        
$faktor $height $info[1];
        
$width $info[0] * $faktor
    } 


cortex 21.05.2010 15:18:44

AW: Code 62 - Vorschaubilder erstellen - Fehlerhaft?
 
Zitat:

Zitat von klausguenter (Beitrag 136710)
Fehler sollte man nicht auch noch verteidigen

vs.

Zitat:

Zitat von klausguenter (Beitrag 136710)
Klammern [...] sind überflüssig.

wenn du die widersprüchlichkeit deiner aussagen nicht selbst bemerkst, liegt das wohl daran, dass du hier einfach nur ein wenig klugsch***en willst. wer mit einem statement à la "welches Mathe-Ass hat eigentlich [...]" in einem selbsthilfe-forum debütiert, wirkt auf anhieb sympathisch.

denke, das thema ist durch, ansonsten bitte pm an mich.

[mod: closed]

cx


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:22:14 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.