Är ute efter ett färdigt script som likt ImageGen för ASP.NET kan visa thumbnails.
Använder wordpress, så jag vill via en enkel fil kunna visa thumbnails on-the-fly så att säga.
Typ:
/scriptname.php?image=/sökväg/till/bilden&width=150&height=250
Så visas bilden i den sizen.
Har nu en Random Photo-funktion som skall visa lite bilder. Men jag vill inte sitta och resizea alla bilder som den skall visa.
StefanBergfeldt skrev:
http://www.guffa.com/Programming_archive.asp?id=21
Ja nu var juh detta ASP.NET, där har jag redan ImageGen flitigt.
Jag är ute efter en i PHP som är lik ImageGen. :)
fiddlerMedlem sedan juli 20023 617 inlägg Hade ett gammalt skript liggande. Tar argumenten "pic" och "width".
<?
function thumb($width,$pic){
$stor_bild_url = $pic;
$liten_max_x = $width;
$liten_kvalite = 80;
// Läser in den stora bilden och kollar storleken på den.
$stor_bild = imagecreatefromjpeg ($stor_bild_url);
$stor_x = imagesx ($stor_bild);
$stor_y = imagesy ($stor_bild);
// Räknar ut $k som är förhållandet mellan bredden och höjden.
$k = $liten_max_x / $stor_x;
// Räknar ut bredden och höjden på nya bilden.
$liten_x = round($k * $stor_x);
$liten_y = round($k * $stor_y);
// Skapar nya bilden.
$liten_bild = imagecreatetruecolor ($liten_x, $liten_y);
imagecopyresampled ($liten_bild, $stor_bild, 0, 0, 0, 0, $liten_x, $liten_y, $stor_x, $stor_y);
// Visar mini-bilden
imagejpeg ($liten_bild,'', $liten_kvalite);
//Tar bort bilderna ur minnet på PHP.
imagedestroy ($liten_bild);
//Slut på thumbnail-skriptet
}
if(isset($_GET['pic']))
{
$width = $_GET['width'];
$pic = $_GET['pic'];
thumb($width,$pic);
}
?>
SPiNMedlem sedan mars 20007 896 inlägg Det ska väl tilläggas till fiddlers inlägg att GD måste vara inkompilerat/installerat med PHP för att funktionen ska fungera.
fiddlerMedlem sedan juli 20023 617 inlägg
SPiN skrev:
Det ska väl tilläggas till fiddlers inlägg att GD måste vara inkompilerat/installerat med PHP för att funktionen ska fungera.
Precis. Skriptet har endast stöd för jpeg och, såg jag när jag postat, innehåller lite rester från ett tidigare skript. Jag kan fixa till vid tillfälle, men testa gärna om det fungerar som du vill.
Sorry, jag som läser slarvigt :P
<?php
/**
* Make thumbs from JPEG, PNG, GIF source file
*
* $tmpname = imagesource;
* $size - max width size
* $save_dir - destination folder
* $save_name - tnumb new name
*
* Author: LEDok - http://www.citadelavto.ru/
* Modified by: Fredde - http://www.malmstroem.info/
*/
function img_resize( $tmpname, $size, $save_dir, $save_name )
{
$save_dir .= ( substr($save_dir,-1) != "/") ? "/" : "";
$gis = GetImageSize($tmpname);
$type = $gis[2];
switch($type)
{
case "1": $imorig = imagecreatefromgif($tmpname); break;
case "2": $imorig = imagecreatefromjpeg($tmpname);break;
case "3": $imorig = imagecreatefrompng($tmpname); break;
default: $imorig = imagecreatefromjpeg($tmpname);
}
$x = imageSX($imorig);
$y = imageSY($imorig);
if($gis[0] <= $size)
{
$av = $x;
$ah = $y;
}
else
{
$yc = $y*1.3333333;
$d = $x>$yc?$x:$yc;
$c = $d>$size ? $size/$d : $size;
$av = $x*$c; //?????? ???????? ????????
$ah = $y*$c; //????? ???????? ????????
}
$im = imagecreate($av, $ah);
$im = imagecreatetruecolor($av,$ah);
imagecopyresized($im,$imorig,0,0,0,0,$av,$ah,$x,$y);
// output
switch($type)
{
case "1": header("content-type: image/gif"); break;
case "2": header("content-type: image/jpeg"); break;
case "3": header("content-type: image/png"); break;
default: header("content-type: image/jpeg");
}
// display only..
imagejpeg($im);
imagedestroy($im);
}
// resize image.
img_resize($_GET['image'],$_GET['width'], "/wp-content/dumps/","name");
?>
Hittade en kod snutt på nätet som jag modifierade lite granna som gör det jag vill... tillsvidare i alla fall. :)
Dock tror jag att jag skulle behöva implementera någon form av cachning av bilderna som använder scriptet.
Har ni några tips på hur man bör göra det?
Jag funderade på om man skulle hasha image-sökvägen och önskade storleken. Och spara den som fil, för att sedan när scriptet körs igen med samma sökväg och samma storlek, så istäälet för att förminska bilden som angivits så läser man in en fil som har filnamnet i form av hash-summan för image-sökvägen och storleken.
Bör väl snabba upp processen lite, speciellt om det är stora filer.
Eller?