Fagzal blogja

Csatornák : MIND    USA - személyes  (31)   Perl 5  (3)   Random  (4)  
Első ujjgyakorlat: thumbnail-ek készítése
2007, Május 31., 15 óra

A feladat: egy adott képfile átméretezése úgy, hogy a létrejövő kép egy előre megadott méretű téglalapba beférjen, és ne torzuljon (tartsa meg a méretarányait). Lehetőleg a script minél több formátumot ismerjen.

Mellébeszélés helyett lássuk egyből a kódot!

Thumbnail Generator

use strict;      
use Image::Magick;   

# szelesseg, magassag definicio, file-ok megadasa
my ($width$height$infile$outfile) = (160,160'./kep.jpg'
   './ujkep.png');

# object letrehozasa, kep beolvasasa
my $im = Image::Magick->new;
my $read = $im->Read($infile);
$read && die($read);

# EREDETI szelesseg, magassag beolvasasa
my ($w$h) = $im->Get('width','height');
print "Beolvasva: $infile. Meret: $w x $h\n";

# Aranyok megallapitasa, uj meret kiszamitasa
my ($neww$newh);
if ($w/$h > $width/$height) {
   $neww = $width;
   $newh = int($h * ($neww/$w));
else {
   $newh = $height;
   $neww = int($w * ($newh/$h));
}
print "Az uj meret: $neww x $newh\n";

# Tenyleges atmeretezes, kimentes
$im->Resize('width' => $neww'height' => $newh);
$im->Write($outfile);
print "Kesz.\n";


Ez a kód meglehetősen "kiherélt", mindössze a minimális dolgokat tudja. A felhasznált képmanipuláló modul az ImageMagick, amely véleményem szerint az egyik legjobb képmanipuláló csomag (egy C library-ról van szó, amihez a Perl modul csak egy binding).
A képet beolvassuk, méretarányai szerint kiszámoljuk a thumbnail méretét, majd kicsinyítünk. Akkor is átméretezünk, ha "nem kell", vagyis ha a forráskép eleve kisebb, mint a megadott téglalap - házi feladat, hogy ez ne így legyen .

Ja, és igen: az ImageMagick igazából egyetlen utasítással is tud thumbnail-t készíteni, de ezzel most ne törődjünk
 

A bejegyzés közvetlen címe : http://fagzal.kepeslap.com/blog/b92

Hozzászólások

Új hozzászólás

2007-09-06 00:26:35
Törölt hozzászólás


2007-09-06 01:48:03
Törölt hozzászólás


Ha hozzá akar szólni a bejegyzéshez, lépjen be, vagy ha még nem regisztrált, regisztráljon itt!


Át a galériára!»

1. Triviális hírlevél küldő
   2007, Június 1., 14h
2. Első ujjgyakorlat: thumbnail-ek készítése
   2007, Május 31., 15h
3. Perl blog - ez miez?
   2007, Május 29., 23h
További bejegyzések
1.-  11.-   21.-   31.-  

Archivum
rss newsfeed icon

Több képeslapküldő!
Cím: Garfield
: 542
: 2005-07-17 20:01:14
Cím: Garfield
: 514
: 2005-12-11 14:25:57
Cím: Garfield
: 775
: 2005-12-11 14:25:46
Cím: Garfield
: 666
: 2005-12-11 14:25:36
Cím: Garfield
: 717
: 2005-07-17 20:00:24
Cím: Garfield
: 679
: 2005-12-11 14:26:23
Cím: Garfield
: 1411
: 2005-12-12 21:15:42
Cím: Garfield
: 480
: 2005-07-17 20:00:00
Cím: Garfield
: 720
: 2005-07-17 19:57:46
Cím: Garfield
: 498
: 2005-07-17 19:58:34
Cím: Garfield
: 1172
: 2005-12-11 14:26:09