2009-07-22 17 views
0

Es ist möglich, Thumbnails aus einem Bild innerhalb eines Viewports zu erstellen, indem man sie schneidet? Möglicherweise mit Jquery! Wie in diesem Beispiel, aber ohne das canvs-Element zu verwenden. Galleria macht so etwas, aber es ist ziemlich langsam, alle Bilder im Cache zu laden und dann die Größe zu ändern. Ich verwende einen Preloader, aber ich weiß nicht, wie man die Bilder skaliert, da ich alle Thumbnails 50X50 brauche. Vielen Dank im Voraus für Ihre Hilfe!Image Thumbnails

+1

könnten Sie auch diese Frage betitelt haben „Blah blah“ –

+0

Wenn Sie ein fordern Dienstprogramm, um Bildminiaturen zu erstellen, versuchen Sie es auf Superuser.com. Google für Beta-Schlüssel, falls erforderlich. – RedFilter

Antwort

0

Theres ein Bild beschneidet plugin zur Verfügung. Nicht ganz sicher, was du meinst.

1

Eine große Anzahl von Thumbnail-Generierung sollte wirklich durchgeführt werden, bevor der Benutzer die Seite jemals besucht. Sie würden mehr Zeit sparen, indem Sie sie alle vorher durch einen Miniaturbildgenerator laufen lassen und nur Dateien verwenden.

Ich gehe davon aus, dass, weil sie 50x50 sind, wird es eine Menge von ihnen geben.

1

Die Tatsache, dass Sie jQuery erwähnen, bedeutet, dass Sie Thumbnail-Generierung als Teil einer Webseite erstellen möchten?

Wenn dies der Fall ist, wie Sneakyness implied ist es eine schlechte Idee, dies auf dem Client (in einem Webbrowser) zu tun. Wenn Sie dies auf dem Client planen, können Sie auch <img src="/images/really_large_file.jpg" border="0" height="50" width="50"> tun, da das Generieren der Thumbnails auf dem Client (in einem Webbrowser) erfordert, dass der Besucher die Vollversion jedes einzelnen Bilds herunterlädt, das Sie als Thumbnail verwenden möchten. Wenn diese Bilder groß sind, wird dies sehr langsam sein. Selbst 100 Bilder von je 10KB sind 1MB Bilder. Über ein Wählmodem würden sie etwa 4 Minuten zum Herunterladen benötigen.

Die Vorschaubilder sollten auf dem Server entweder im Voraus (wie sie hochgeladen werden) oder dynamisch (wie sie von den Besuchern angefordert werden) generiert werden.

Wenn Sie wirklich wollen noch diese (nicht empfohlen) tun, könnten Sie es mit etwas tun:

<script type="text/javascript"> 
function maintainAspectRatio(img) { 
    // retrieve a new copy of the image that is not sized 50 x 50 
    var newImg = new Image(); 
    newImg.src = img.src; 
    // get the ratio of the width to the height 
    var ratio = newImg.width/newImg.height; 
    if (ratio > 1) { 
     // ratio is >1, preserve width 50, scale height 
     img.width = 50; 
     img.height = 50/ratio; 
    } else if (ratio < 1) { 
     // ratio is <1, preserve height 50, scale width 
     img.width = ratio * 50; 
     img.height = 50; 
    } 
} 
</script> 
<!-- 
load image as 50 x 50 "thumbnail" to reserve screen space 
this will most likely result in the aspect ratio being corrupted 
we will use JavaScript to fix this 
--> 
<img src="http://www.google.com/intl/en_us/images/logo.gif" 
    border="0" height="50" width="50" 
    onload="maintainAspectRatio(this);">