bildgröße

@mako

Du musst die GD-Lib installiert haben. Ist klar, dass er die Fkt. nicht findet :)

@luv
um ein kleines Logo im Bild einzufügen müsstest du dich mit der Funktion [phpf]imagecopy[/phpf] auseinandersetzen. Am Besten du schaust mal hier .

@blubber
In der Definition von imagecreatefromjpeg steht dieser hinweis
Tip: You can use a URL as a filename with this function if the fopen wrappers have been enabled. See [phpf]fopen[/phpf] for more details on how to specify the filename and Appendix L for a list of supported URL protocols.
Schau da mal nach. Am besten unter der Definition von [phpf]imagecreatefromjpeg[/phpf]

Die Benutzer, die irgendwelchen kryptischen Sachen ausgegeben bekommen oder den Fehler mit dem Header. Also wenn man die Funktion thumb->output aufruft, dann sendet php die Daten als Bild. Aber der Browser denkt es kommt nur Text. Deswegen steht da sowas unverständliches :)

Um das Bild nun auszugeben musste das so machen.
PHP:
<?php
//in die Ausgabedatei das hier schreiben
?>
<img src="test.php">
<?php

und nun kommt eben diese test.php

PHP:
<?php
include("class.thumb.php"); // oder was auch immer 
$thumb = new thumb(); // Klasseninstanz erstellen 
$thumb->create("test.jpg", 320, 240); // Thumbnail erstellen 
$thumb->output(); // Bild an den Browser ausgeben 
$thumb->clear(); // Aufräumen
?>
Nun sollte das richtige bild angezeigt werden.

Nun werden die Daten, die das Script sendet als Bilddaten gesehen und nicht mehr als Text.
 
Zuletzt bearbeitet:
@reima

Also ich hab mir mal dein Skript angeschaut und ein was versteh ich logisch nicht :)

PHP:
<?php
      if ($width == 0) { 
            $width = round($height * ($src_width/$src_height)); 
        } 
        if ($height == 0) { 
            $height = round($width * ($src_height/$src_width)); 
        }

Also wenn eine Seitenangabe nicht gemacht wurde, müsste das Skript den Faktor berechnen, damit die Seitenverhältnisse gleich bleiben und keine _Verzerrung_ entsteht. Aber wie willst du denn den Faktor bestimmt , wenn du höhe/weite nimmst Also ich würde durch (alte Höhe) / (neue Höhe) oder eben (alte Weite) / (neue Weite) den Faktor bestimmt, inwieweit das Bild verkleinert wird. Dann bräuchte ich nurnoch das gesuchte Element mit diesem Faktor multiplizieren

Also so:
PHP:
<?php
      if ($width == 0) { 
            $width = round($src_width * ($src_height/$height)); 
        } 
        if ($height == 0) { 
            $height = round($src_height * ($src_$width/$width)); 
        }

Bitte erklär mir mal deinen Gedankengang, wie du auf sowas kommst :) Es funktioniert ja. Sonst hätte sich schon jemand beschwert.
 
Ok ich hab das jetzt mehr oder weniger hingebracht. Lokal geht zwar gar nichts obwohl die dll Datei da ist und in der php.ini auch richtig eingebunden, aber auf meinem Server klappts.

Jetzt habe ich allerdings ein Problem. Ich wollte das Ganze in eine Schleife hängen und mir so mehrer Bilder verarbeiten lassen. Leider macht er immer nur eines. Die Bilder sind alle in einem Verzeichnis und der Pfad wird per mysql aus einer Tabelle ausgelesen. Wie schaffe ich es nun, dass er mir die Bilder alle zu Thumbnails macht?

Rätselnde Grüße

Mako
 
@KoMtuR:

Mein Gedankengang:

Definiere (Breite / Höhe) als Seitenverhältnis.

Dann:
Breite = Höhe * (Breite / Höhe)
Breite = Höhe * Seitenverhältnis

Seitenverhältnis soll konstant bleiben. Für eine neue Höhe "neueHöhe" berechnet sich die zugehörte neue Breite dann wie folgt:

neueBreite = neueHöhe * Seitenverhältnis
neueBreite = neueHöhe * (Breite / Höhe)

Analog für die Berechnung der neuen Höhe bei gegebener neuer Breite.

So steht's dann auch in meinem Code :)


Dein Gedankengang ist falsch, da du das Verhältnis mit (alteHöhe / neueHöhe) berechnest. Du brauchst aber den Anteil der neuen Höhe an der alten, also (neueHöhe / alteHöhe). Kannst du dir ganz einfach an einem Rechenbeispiel veranschaulichen: Nehmen wir mal an, neueHöhe = 0,5*alteHöhe. Dann wäre nach deiner Rechnung alteHöhe / neueHöhe = 2, und deine neue Breite dann neueBreite = alteBreite * (alteHöhe / neueHöhe) = 2*alteBreite! Richtig wäre aber natürlich 0,5*alteBreite, was mit meiner Rechnung aus rauskommt :)
 
Naja ich glaub dir das schon. Ok ich hatte ein Denkfehler drin mit meiner Rechnung. Wollte das über die Strahlensätze machen, weil es das Thema waren, was wir immer zu dem Thema "Vergrößern und Verkleinern" hatten *fg*
 
Zurück