Kom ihåg mig?
Home Menu

Menu


Skapa thumbnails till webbsidor under Linux

Ämnesverktyg Visningsalternativ
Oläst 2008-05-18, 18:10 #1
xarphs avatar
xarph xarph är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 346
xarph xarph är inte uppkopplad
Flitig postare
xarphs avatar
 
Reg.datum: Feb 2007
Inlägg: 346
Hej!

Håller på att utveckla en bloggtjänst där jag behöver thumbnails till varje blogg man knappar in. Just nu använder jag mig av en tjänst som heter thumbshots.de. Används på detta sättet: http://www.thumbshots.de/cgi-bin/show.cgi?...kissie.blogg.se

Tjänsten fungerar mycket bra, men tyvärr så segar den ner hela min sida en hel del då den måste hämta thumbnailsen från Tyskland.

Har kollat runt lite efter ett thumbnail-script man kan köra på sin egen server. Har dock inte hittat något till Linux och det är Linux vi kör på våra servers. Nästan alla bra sådana scripts kräver tyvärr Windows hosting.

Någon som har en aning om hur man kan lösa detta på bästa sätt?
Finns det något sådant fungerande script till Linux som ni har testat?
Ska jag spara ner thumbnailsen med PHP eller något från Thumbshots.de, hur isåfall?
Ska vi köra med en separat Windows-server för det här?

Hur ska vi göra?

Tack på förhand.

Med vänlig hälsning.
xarph är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-18, 18:50 #2
Jawns avatar
Jawn Jawn är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 986
Jawn Jawn är inte uppkopplad
Mycket flitig postare
Jawns avatar
 
Reg.datum: Aug 2004
Inlägg: 986
Spara bilden lokalt som thumbshots genererar.
Jawn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-18, 22:42 #3
JLEs avatar
JLE JLE är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2007
Inlägg: 382
JLE JLE är inte uppkopplad
Flitig postare
JLEs avatar
 
Reg.datum: Jul 2007
Inlägg: 382
Googla Xvfb firefox
JLE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-19, 00:03 #4
nicclas nicclas är inte uppkopplad
Flitig postare
 
Reg.datum: May 2003
Inlägg: 340
nicclas nicclas är inte uppkopplad
Flitig postare
 
Reg.datum: May 2003
Inlägg: 340
Jag utgick från http://www.boutell.com/webthumb/ när jag skapade min.
nicclas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-19, 10:47 #5
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Jag har en funktion som fungerar fint som jag brukar använda mig av.
Vad den gör är att spara en thumbnail lokalt.

Funktionen kan användas till mycket mera oxå, men bör fungera fint till det du vill.

Kanske hjälper? Anyway, feel free.

Snabbt förklarat:

$src = Bilden du vill skapa thumbnail av.
$dst = Vart vill du spara bilden.
$dstx = Bredd
$dsty = Höjd
$quality = Kvalité, default 75. (0-100)
$text = Om du vill ha in ett textfält i bilden, default = ingentext.

Kod:
<?
function resizeImage($src, $dst, $dstx, $dsty, $quality = 75, $text = ''){

$allowedExtensions = 'jpg jpeg gif png';

$name = explode(".", $src);
$currentExtensions = $name[count($name)-1];
$extensions = explode(" ", $allowedExtensions);

for($i=0; count($extensions)>$i; $i=$i+1){
if($extensions[$i]==$currentExtensions)
{ $extensionOK=1; 
$fileExtension=$extensions[$i]; 
break; }
}

if($extensionOK){

$size = getImageSize($src);
$width = $size[0];
$height = $size[1];

if($width >= $dstx AND $height >= $dsty){

$proportion_X = $width / $dstx;
$proportion_Y = $height / $dsty;

if($proportion_X > $proportion_Y ){
$proportion = $proportion_Y;
}else{
$proportion = $proportion_X;
}
$target['width'] = $dstx * $proportion;
$target['height'] = $dsty * $proportion;

$original['diagonal_center'] = 
round(sqrt(($width*$width)+($height*$height))/2);
$target['diagonal_center'] = 
round(sqrt(($target['width']*$target['width'])+
($target['height']*$target['height']))/2);

$crop = round($original['diagonal_center'] - $target['diagonal_center']);

if($proportion_X < $proportion_Y ){
$target['x'] = 0;
$target['y'] = round((($height/2)*$crop)/$target['diagonal_center']);
}else{
$target['x'] = round((($width/2)*$crop)/$target['diagonal_center']);
$target['y'] = 0;
}

if($fileExtension == "jpg" OR $fileExtension=='jpeg'){ 
$from = imagecreatefromjpeg($src); 
}elseif ($fileExtension == "gif"){ 
$from = imagecreatefromgif($src); 
}elseif ($fileExtension == 'png'){
 $from = imagecreatefrompng($src);
}

$new = imagecreatetruecolor ($dstx,$dsty);

imagecopyresampled ($new, $from, 0, 0, $target['x'], 
$target['y'], $dstx, $dsty, $target['width'], $target['height']);

//ADD TEXT
if($text != ''){
$im = $new;
if(!$im)
{
 die("");
}
$yellow = imagecolorallocate($im, 255, 255, 0);
$black = imagecolorallocate($im, 0, 0, 0);
$width = imagesx($im);
$height = imagesy($im);
imagefilledrectangle($im, 0, ($height-20) , $width, $height, $black);
$font = 4;
$leftTextPos = ( $width - imagefontwidth($font)*strlen($text) )/2;
imagestring($im, $font, $leftTextPos, $height-18, $text, $yellow);
$new = $im;
}


 if($fileExtension == "jpg" OR $fileExtension == 'jpeg'){ 
imagejpeg($new, $dst, $quality); 
}elseif ($fileExtension == "gif"){ 
imagegif($new, $dst); 
}elseif ($fileExtension == 'png'){
imagepng($new, $dst);
}
}
}
}
?>
För att bestämma bildens storlek brukar jag köra det något dynamiska systemet:

Kod:
$setwidth = 120;
$setheight = 80;

list($width, $height, $type, $attr) = getimagesize('mapp/uppladdadfil.jpg');
  if($width > $setwidth){
  $pr = $setwidth/$width;
  $w = $pr * $width;
  $h = $pr * $height;
  } else {
  	$w = $width;
  	$h = $height;
  }
  if($h > $setheight){
  $pr = $setheight/$h;
  $w = $pr * $w;
  $h = $pr * $h;
  } else {
  	$w = $w;
  	$h = $h;
  }
resizeImage('mapp/uppladdadfil.jpg', 'mapp/nyfil.jpg', $w, $h, 100);
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-23, 02:10 #6
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
grinditwp:

Riktigt riktigt duktigt att du läser.
Hur skulle det där hjälpa till?

Jag letar också efter en sån här funktion.
Helst kunna köras lokalt, utan att behöva ha Xorg eller liknande installerat. :/
(Och jag tänker inte ens fundera på Windows)
Jine är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017