Frage

Gibt es einen Weg, um ein Bild auf einem Server zu reduzieren und zu ändern, ohne eine reduzierte zu speichern? Als ob ein Bild 500x500 250 KB wäre, möchte ich, dass es 50 x 50 45 KB im Browser eines Benutzers anzeigt.

Wenn es keinen Weg gibt, wie kann ich dann vorübergehend einen erstellen, der in einen Ordner gehen und später nach einigen Zeiten gelöscht hat?

War es hilfreich?

Lösung

header("Content-type: image/jpeg");
$image = imagecreatefromjpeg($url);
$thumbImage = imagecreatetruecolor(50, 50);
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, 500, 500);
imagejpeg($thumbImage,"",85);
imagedestroy($image);
imagedestroy($thumbImage);

Sie sollten das Ergebnis jedoch irgendwie zwischenspeichern, um die Last auf dem Server zu senken.

Andere Tipps

Ich würde nachdrücklich vorschlagen, dass anstatt zu versuchen, ein großes Bild zu ändern, das Sie bei Upload Time eine kleinere Version speichern und die Originalversion aufbewahren. Mit Cloud -Hosting wie S3 können Sie dies billig tun.

Der logischste Prozess besteht darin, den teuren Betrieb (das Foto zu skalieren) einmal mehrmals durchzuführen.

Als Antwort auf Ihre andere Frage können Sie GD oder Imagemagick verwenden, um ein Bild zu skalieren. Es gibt Hunderte von Tutorials, wie man das macht. Wenn Sie diesen Weg gehen möchten, würde ich ein Tutorial googeln und versuchen.

Es klingt nach allem, was Sie tun möchten, ist, das zu setzen height und width Attribute des HTML -Bild -Tags.

<img src='blah' height=50 width=50 />

Prozentsätze können auch verwendet werden.

CSS ermöglicht etwas mehr Kontrolle und kann auf alle Bilder (oder alle Bilder einer bestimmten Klasse) angewendet werden. Damit können Sie spezifizieren max-height und max-width was nicht kleinere Bilder beeinflusst. Unten gilt für alle Bilder mit der Klasse resizedimages

.resizedimages {max-height: 400px; max-width: 400px}

Wenn Sie nicht daran interessiert sind, ein Bild in der Änderung zu speichern, klingt dies nach einem Problem der Client -Seite. PHP hat nichts damit zu tun (außer vielleicht das notwendige HTML)

Hinweis: Wenn der Benutzer mit der rechten Maustaste klickt und auf dem Bild speichert, ist es immer noch die vollständige 250 KB. Dies sind rein anzeigen Probleme. Wenn dieser Aspekt für Sie wichtig ist, weiß ich keine andere Weise, als eine reduzierte Kopie zu speichern.

Diese sind wahrscheinlich die besten Ressourcen, nur einige, die an der Spitze von Google aufgetaucht sind.

http://www.w3schools.com/tags/tag_img.asp
http://www.fastechws.com/tricks/web/image-max-width-height.php

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top