/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Generering af thumbnails i forbindelse med~
Fra : Martin Agersted Jarl


Dato : 19-04-04 13:58

Hej NG!

I forbindelse med udvikling af en billeddatabase, skal jeg muligvis
bruge en løsning der som input kan tage en billedfil og automatisk som
output lave et frimærkestørrelses-repræsentation af billedet. Databasen
skal have et web-interface og det vil være praktisk hvis folk kan se en
lille udgave af billedet fremfor at downloade et billede som i visse
tilfælde kan fylde op mod de 30 mbyte.

Input vil bestå at alle mulige billedformater (tiff, tiff med lzw,
photoshop, jpg, gif, png osv).

Jeg kan allerede nu sige at der (selvfølgelig) vil være problemer med
bevillinger til licenskrævende applikationer til dette formål.

Databasen, som bliver drevet af mySQL, skal afvikles på en linux-box.

--Martin

 
 
Peter Makholm (19-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 19-04-04 14:19

Martin Agersted Jarl <martin@sletmigjarl.dk> writes:

> billedet. Databasen skal have et web-interface og det vil være
> praktisk hvis folk kan se en lille udgave af billedet fremfor at
> downloade et billede som i visse tilfælde kan fylde op mod de 30 mbyte.

Hvad er dit problem?

Jeg plejer at lave lignende ting med convert, fra ImageMagick.

Jeg finder størelsen på billedet og finder ud af hvor meget jeg vil
skalere i procent. Så smider jeg billedet gennem convert.

--
Peter Makholm | I congratulate you. Happy goldfish bowl to you, to
peter@makholm.net | me, to everyone, and may each of you fry in hell
http://hacking.dk | forever
| -- The Dead Past

Thomas Rasmussen (19-04-2004)
Kommentar
Fra : Thomas Rasmussen


Dato : 19-04-04 14:43

Peter Makholm <peter@makholm.net> writes:

> Hvad er dit problem?

Kunne forestille mig at problemet er at der er mange billeder og
derfor vil man nok gerne have noget der kører lidt bedre end manuelle
kommandoer.

> Jeg plejer at lave lignende ting med convert, fra ImageMagick.
>
> Jeg finder størelsen på billedet og finder ud af hvor meget jeg vil
> skalere i procent. Så smider jeg billedet gennem convert.

Jeg har med success (syntes jeg selv) anvendt album
(http://marginalhacks.com/Hacks/album/) se
http://www.p7.dk/Photo_Album for mine eksempler.

Der er dog ikke nogen database blandet ind i det.

Jeg har også set andre gode muligheder, bla. er Gallery
(http://gallery.sourceforge.net/) se eksempler på:
http://aalborgdyk.dk/gallery/ som har fordelene af at kunne anvendes
af mange brugere og web-enabled submission og kommentering. Dog sætter
det også noget pres på selve webserveren.

/Thomas

--
/"\ | Human Knowledge Belongs To The World
\ / | -- Milo Hoffman in "AntiTrust"
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Martin Agersted Jarl (19-04-2004)
Kommentar
Fra : Martin Agersted Jarl


Dato : 19-04-04 15:49

Peter Makholm wrote:

> Martin Agersted Jarl <martin@sletmigjarl.dk> writes:
>
>
>>billedet. Databasen skal have et web-interface og det vil være
>>praktisk hvis folk kan se en lille udgave af billedet fremfor at
>>downloade et billede som i visse tilfælde kan fylde op mod de 30 mbyte.
>
>
> Hvad er dit problem?
>
> Jeg plejer at lave lignende ting med convert, fra ImageMagick.
>
> Jeg finder størelsen på billedet og finder ud af hvor meget jeg vil
> skalere i procent. Så smider jeg billedet gennem convert.
>

Problemet er følgende skitseret:

En bruger skal uploade en stort billede (f.eks. et tiff-billede).
Bruger vælger billedfilen og klikker på "upload".
Billedet uploades.
Billedet konverteres af et-eller-anden-applikation
og output = thumbnail.

Det skal med andre ord ske hver gang en bruger tilføjer et billede til
databasen. Fordelen er selvfølgelig at brugerne ikke behøver selv at
konvertere billedet. Brugerpopulationen har ikke med garanti hverken
kendskab til eller adgang til billedbehandlingsprogrammer.

Kan convert indgå i et sådan scenario?

--Martin

Jonas Hauge (19-04-2004)
Kommentar
Fra : Jonas Hauge


Dato : 19-04-04 16:41

Martin Agersted Jarl wrote:

> Kan convert indgå i et sådan scenario?

Ja - eller du kan bruge netpbm.

--
Mvh.
Jonas Hauge

Peter Makholm (19-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 19-04-04 17:07

Martin Agersted Jarl <martin@sletmigjarl.dk> writes:

> En bruger skal uploade en stort billede (f.eks. et tiff-billede).
> Bruger vælger billedfilen og klikker på "upload".
> Billedet uploades.
> Billedet konverteres af et-eller-anden-applikation
> og output = thumbnail.


> Kan convert indgå i et sådan scenario?

Jeg har ofte brugt en variation over følgende perlkode der gemmer
billede i tre størrelser samt original-billedet. Lige præcis dette
kode ser primært ud til at være skrevet til fotografier, da de små
billeder altid er jpg-filer.

Du skal selvfølgelig lige selv skrive noget omgivende kode.

# $img er billedet, $imgname er et passende billednavn.

use Image::Size;
my ($img_x,$img_y) = imgsize(\$img);
my $img_size = $img_x > $img_y ? $img_x : $img_y;

my %scale = ( large => int((600/$img_size)*100) . '%',
medium => int((200/$img_size)*100) . '%',
small => int((65/$img_size)*100) . '%',
);

my $imgpath = "$DOCROOT/uploads";
$imgname =~ m!([^/]+)(\.[^/.]+)$/;
$base = $1; $ext = $2;

for $size (keys %scale) {
open CONVERT, "| /usr/bin/convert -colorspace RGB -resize $scale{$size}x$scale{$size} $ext:- $imgpath/$base_$size.jpg" || (warn "Couldn't open convert $base_$size.jpg" && next);
print CONVERT $img;
close CONVERT;
}

if (open FH, ">", "$imgpath/$base.$ext") {
print FH $img;
close FH;
} else {
warn "Couldn't open $base.$ext";
}


--
Peter Makholm | I laugh in the face of danger. Then I hide until
peter@makholm.net | it goes away
http://hacking.dk | -- Xander

Martin Agersted Jarl (19-04-2004)
Kommentar
Fra : Martin Agersted Jarl


Dato : 19-04-04 17:40

Peter Makholm wrote:
> Martin Agersted Jarl <martin@sletmigjarl.dk> writes:
>
>
>>En bruger skal uploade en stort billede (f.eks. et tiff-billede).
>> Bruger vælger billedfilen og klikker på "upload".
>> Billedet uploades.
>> Billedet konverteres af et-eller-anden-applikation
>> og output = thumbnail.
>
>
>
>>Kan convert indgå i et sådan scenario?
>
>
> Jeg har ofte brugt en variation over følgende perlkode der gemmer
> billede i tre størrelser samt original-billedet. Lige præcis dette
> kode ser primært ud til at være skrevet til fotografier, da de små
> billeder altid er jpg-filer.
>
> Du skal selvfølgelig lige selv skrive noget omgivende kode.
>
> # $img er billedet, $imgname er et passende billednavn.
>
> use Image::Size;
> my ($img_x,$img_y) = imgsize(\$img);
> my $img_size = $img_x > $img_y ? $img_x : $img_y;
>
> my %scale = ( large => int((600/$img_size)*100) . '%',
> medium => int((200/$img_size)*100) . '%',
> small => int((65/$img_size)*100) . '%',
> );
>
> my $imgpath = "$DOCROOT/uploads";
> $imgname =~ m!([^/]+)(\.[^/.]+)$/;
> $base = $1; $ext = $2;
>
> for $size (keys %scale) {
> open CONVERT, "| /usr/bin/convert -colorspace RGB -resize $scale{$size}x$scale{$size} $ext:- $imgpath/$base_$size.jpg" || (warn "Couldn't open convert $base_$size.jpg" && next);
> print CONVERT $img;
> close CONVERT;
> }
>
> if (open FH, ">", "$imgpath/$base.$ext") {
> print FH $img;
> close FH;
> } else {
> warn "Couldn't open $base.$ext";
> }
>
>

Fedt. Rigtig fedt! Takker.

--Martin

Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste