/ Forside / Teknologi / Multimedie & design / Andet multimedie / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Andet multimedie
#NavnPoint
refi 19159
Klaudi 13515
severino 5400
pallebhan.. 4553
molokyle 4203
o.v.n. 3762
tedd 3707
bentjuul 3670
transor 2817
10  miritdk 2644
Thumbnails
Fra : Lars HT


Dato : 25-01-05 09:23

Hej

Jeg har brug for at kunne lave thumbnails i jpeg-format af diverse andre
billedformater (jpeg, bmp, gif, png, ico mm.). Disse thumbnails skal jeg
bruge til at kunne vise indholdet af en folder i en billedbrowser, jeg er
ved at programmere.
Har fundet forskellig delphi-kode og specielt commando linie programmer, som
kan dette, men fælles for aller er, at det tager for lang tid at generere
thumbnails.

Derfor undrer det mig, hvordan programmer som Adobe Photoshop Album og
XnView kan generere billedoversigter så hurtigt uanset billedformatet og
filstørrelse. Er der en, som kan give mig et tip om, hvordan dette gøres og
hvordan jeg kommer videre med thumbnails?

Lars




 
 
Lars Thomsen Nielsen (25-01-2005)
Kommentar
Fra : Lars Thomsen Nielsen


Dato : 25-01-05 14:29

> Jeg har brug for at kunne lave thumbnails i jpeg-format af diverse andre
> billedformater (jpeg, bmp, gif, png, ico mm.). Disse thumbnails skal jeg
> bruge til at kunne vise indholdet af en folder i en billedbrowser, jeg er
> ved at programmere.

Jeg synes at Irfanview (www.irfanview.com) er ganske hurtig og den kan man
programmere med command line options. Afsnittet nederst i dette indlæg er
taget direkte fra hjælpen i Irfanview og som det ser ud kan du have glæde af
resize funktionen, men jeg har nu ikke kigget nærmere på det.

Lars Thomsen Nielsen

*****************

Command line options allow you to set some functions of IrfanView before the
viewer is launched.

These command line options are supported in IrfanView:

/one - force 'Only one instance'
/fs - force Full Screen display
/bf - force 'Fit image to desktop' display option
/title=text - set window title to 'text'
/pos=(x,y) - move the window to x,y

/convert=filename - convert input file to 'filename' and close
IrfanView
/slideshow=txtfile - play slideshow with the files from 'txtfile'
/slideshow=folder - play slideshow with the files from 'folder'
/thumbs=folder - force thumbnails (with a specific folder)
/killmesoftly - close all IrfanView instances
/closeslideshow - close slideshow and close IrfanView after the last
image

/page=X - open page number X from a multipage input image
/crop=(x,y,w,h) - crop input image: x-start, y-start, width, height
/print - print input image (all pages) to default printer and close
IrfanView
/print="Name" - print input image (all pages) to specific printer and
close IrfanView
/resize=(w,h) - resize input image to w (width) and h (height)
/resample=(w,h) - resample input image to w (width) and h (height)

/capture=X - capture the screen or window (see examples below)
/ini - use the Windows folder for INI/LST files (read/save)
/ini="Folder" - use the folder "Folder" for INI/LST files (read/save)
/clippaste - paste image from the clipboard
/clipcopy - copy image to the clipboard
/silent - don't show error messages for command line read/save errors

/invert - invert the input image
/dpi=(x,y) - change DPI values
/scan - acquire the image from the TWAIN device (show TWAIN dialog)
/scanhidden - acquire the image from the TWAIN device (hide TWAIN
dialog)
/batchscan=(options) - simulate menu: File->Batch Scan, see below for
example
/bpp=BitsPerPixel - change color depth of the input image to
BitsPerPixel
/swap_bw - swap black and white color

/gray - convert input image to grayscale
/rotate_r - rotate input image to right
/rotate_l - rotate input image to left
/filepattern="x" - browse only specific files
/sharpen=X - open image and apply the sharpen filter value X
/contrast=X - open image and apply the contrast value X
/hide=X - hide toolbar, status bar, menu and/or caption of the main
window (see examples below)

/aspectratio - used for /resize and /resample, keep image proportions
/info=txtfile - write image infos to "txtfile"
/append=tiffile - append image as (TIF) page to "tiffile"
/multitif=(tif,files) - create multipage TIF from input files
/jpgq=X - set JPG save quality
/tifc=X - set TIF save compression
/wall=X - set image as wallpaper
/extract=(file,ext) - extract all pages from a multipage file

/import_pal=palfile - import and apply a special palette to the image
(PAL format)


Notes:
- Only lower case options are supported (don't type any UPPERCASE letters) !
- Input file name (if required) is always the first paramater!
- Use "" for file names with spaces, example: "dummy test file.jpg"
- Write always the FULL paths for file names (incl. drive)
- You can combine several options in one command
- Wildcards (*) supported only for /convert, /print and /info

- Maximal command line length is limited by Windows


Example for conversion:

i_view32.exe c:\test.bmp /convert=c:\test.jpg
Convert file: 'c:\test.bmp' to 'c:\test.jpg' without GUI.

i_view32.exe c:\*.jpg /convert=d:\temp\*.gif
i_view32.exe c:\*.jpg /resample=(500,300) /convert=d:\temp\*.png
i_view32.exe c:\*.jpg /resample=(500,300) /aspectratio
/convert=d:\temp\*.png


Example for slideshow:

i_view32.exe /slideshow=c:\mypics.txt
(Note: The file 'c:\mypics.txt' contains, in each line, a name of the
image, including the full path OR
path relative to "i_view32.exe")

i_view32.exe /slideshow=c:\images\
i_view32.exe /slideshow=c:\images\*.jpg
i_view32.exe /slideshow=c:\images\test*.jpg

Example for /closeslideshow:

i_view32.exe /slideshow=c:\mypics.txt /closeslideshow

The file 'c:\mypics.txt' contains, in each line, a name of the image,
including the full path. Close IrfanView after the last image from the TXT
file.

Example for thumbnails:

i_view32.exe c:\test\image1.jpg /thumbs
Open 'image1.jpg' and display thumbnails from directory 'c:\test'.

i_view32.exe c:\test\ /thumbs
Display thumbnails from directory 'c:\test'.

Example for close:

i_view32.exe /killmesoftly
Close IrfanView and terminate all instances.

Example for /page:

i_view32.exe c:\test.tif /page=3
Open page number 3 from the multipage image 'c:\test.tif'.

Example for /crop:

i_view32.exe c:\test.jpg /crop=(10,10,300,300)
Open 'c:\test.jpg' and crop: x-start=10, y-start=10, width=300, height=300
(in pixels).

Example for /print:

i_view32.exe c:\test.jpg /print

Open 'c:\test.jpg', print the image to default printer and close IrfanView.

i_view32.exe c:\test.jpg /print="Printer Name"
Open 'c:\test.jpg', print the image to specific printer and close IrfanView.

i_view32.exe c:\*.jpg /print
Print all JPGs from "C:\" and close IrfanView.

Example for /resize:

i_view32.exe c:\test.jpg /resize=(300,300)
Open 'c:\test.jpg' and resize: width=300, height=300.

i_view32.exe c:\test.jpg /resize=(300,300) /aspectratio
Open 'c:\test.jpg' and resize: width= max. 300, height= max. 300,
proportional.

i_view32.exe c:\test.jpg /resize=(300,0)
Open 'c:\test.jpg' and resize: width=300, height=original.

i_view32.exe c:\test.jpg /resize=(300,0) /aspectratio
Open 'c:\test.jpg' and resize: width=300, height=proportional.

i_view32.exe c:\test.jpg /resize=(150p,150p)

Open 'c:\test.jpg' and resize: width=150%, height=150%.

Example for /resample:

i_view32.exe c:\test.jpg /resample=(300,300)
Open 'c:\test.jpg' and resample: width=300, height=300 (using the active
resample filter from the I_VIEW32.INI).

i_view32.exe c:\test.jpg /resample=(300,300) /aspectratio
Open 'c:\test.jpg' and resample: width= max. 300, height= max. 300,
proportional.

i_view32.exe c:\test.jpg /resample=(0,300)

Open 'c:\test.jpg' and resample: width=original, height=300 (using the
active resample filter from the I_VIEW32.INI).

i_view32.exe c:\test.jpg /resample=(0,300) /aspectratio
Open 'c:\test.jpg' and resample: width=proportional, height=300 (using the
active resample filter from the I_VIEW32.INI).

i_view32.exe c:\test.jpg /resample=(50p,70p)
Open 'c:\test.jpg' and resample: width=50%, height=70% (using the active
resample filter from the I_VIEW32.INI).

Example for /capture:

i_view32.exe /capture=0
Capture the whole screen.

i_view32.exe /capture=1
Capture the foreground window.

i_view32.exe /capture=2
Capture client area of the foreground window.

Example for /ini:

i_view32.exe /ini
i_view32.exe c:\test.jpg /ini
i_view32.exe c:\test.jpg /ini="c:\temp\"

Example for /clippaste:

i_view32.exe /clippaste

i_view32.exe /clippaste /convert=c:\test.gif

Example for /clipcopy:

i_view32.exe c:\test.jpg /clipcopy
i_view32.exe c:\test.jpg /clipcopy /killmesoftly

Example for /invert:

i_view32.exe c:\test.jpg /invert

Example for /dpi:

i_view32.exe c:\test.jpg /dpi=(72,72)

Example for /scan:

i_view32.exe /scan
i_view32.exe /scan /convert=c:\test.gif

Example for /batchscan=(options):
options = all 8 options from the batch scan dialog:
filename, index, increment, digits, skip, dest-folder, save-extension,
multi-tif
i_view32.exe /batchscan=(scanfile,1,1,2,1,c:\temp,bmp,0)
i_view32.exe /batchscan=(scanfile,1,1,2,0,c:\temp,tif,1)

Example for /bpp:

i_view32.exe c:\test.jpg /bpp=8
Open 'c:\test.jpg' and reduce to 256 colors. Supported BPP-values: 1, 4, 8
and 24 (decrease/increase color depth).

Example for /sharpen:

i_view32.exe c:\test.jpg /sharpen=33

Example for /filepattern:

i_view32.exe c:\images\ /thumbs /filepattern="*.jpg"
Go to folder "'c:\images" and show JPG thumbnails only.

i_view32.exe c:\images\ /thumbs /filepattern="123*.jpg"
Go to folder "'c:\images" and show JPG names "123*" as thumbnails.

Example for /hide:
Values (can be combined (add values)):

Toolbar 1
Status bar 2
Menu bar 4
Caption 8
i_view32.exe c:\test.jpg /hide=1
Open 'c:\test.jpg', hide toolbar only
i_view32.exe c:\test.jpg /hide=3
Open 'c:\test.jpg', hide toolbar and status bar
i_view32.exe c:\test.jpg /hide=12
Open 'c:\test.jpg', hide caption and menu bar
i_view32.exe c:\test.jpg /hide=15
Open 'c:\test.jpg', hide all

Example for /info:

i_view32.exe c:\test.jpg /info=c:\test.txt
i_view32.exe c:\*.jpg /info=c:\jpgs.txt

Example for /append:

i_view32.exe c:\test.jpg /append=c:\test.tif
Open 'c:\test.jpg' and append it as page to 'c:\test.tif'

Example for /multitif:

Syntax: /multitif=(tifname,file1,...,fileN)
First file is the name of the result TIF file.
i_view32.exe /multitif=(c:\test.tif,c:\test1.bmp,c:\dummy.jpg)
Create multipage TIF ('c:\test.tif') from 2 other images.

Example for /jpgq:

i_view32.exe c:\test.jpg /jpgq=75 /convert=c:\new.jpg
Open 'c:\test.jpg' and save it as 'c:\new.jpg', quality = 75. Quality range:
1 - 100.

Example for /tifc:

i_view32.exe c:\test.jpg /tifc=4 /convert=c:\new.tif
Open 'c:\test.jpg' and save it as 'c:\new.tif', compression = Fax4
Compressions: 0 - None, 1 - LZW, 2 - Packbits, 3 - Fax3, 4 - Fax4, 5 =
Huffman, 6 - JPG, 7 - ZIP.

Example for wallpaper:

i_view32.exe c:\test.jpg /wall=0
Open 'c:\test.jpg' and set is as wallpaper (centered)
i_view32.exe c:\test.jpg /wall=1
Open 'c:\test.jpg' and set is as wallpaper (tiled)
i_view32.exe c:\test.jpg /wall=2
Open 'c:\test.jpg' and set is as wallpaper (stretched)

Example for /extract:

i_view32.exe c:\multipage.tif /extract=(c:\temp,jpg)
Open 'c:\multipage.tif' and save all pages to folder 'c:\temp' as single
JPGs.



Lars HT (25-01-2005)
Kommentar
Fra : Lars HT


Dato : 25-01-05 14:39

"Lars Thomsen Nielsen" <lars@EraseThisflexcom.dk> wrote in message
news:ct5hek$18e7$1@news.cybercity.dk...
> > Jeg har brug for at kunne lave thumbnails i jpeg-format af diverse andre
> > billedformater (jpeg, bmp, gif, png, ico mm.). Disse thumbnails skal jeg
> > bruge til at kunne vise indholdet af en folder i en billedbrowser, jeg
er
> > ved at programmere.
>
> Jeg synes at Irfanview (www.irfanview.com) er ganske hurtig og den kan man
> programmere med command line options. Afsnittet nederst i dette indlæg er
> taget direkte fra hjælpen i Irfanview og som det ser ud kan du have glæde
af
> resize funktionen, men jeg har nu ikke kigget nærmere på det.

Tak for svaret - jeg vidste ikke, at irfanview også var commando
linie -baseret!

Prøver det!

Lars



Lars HT (25-01-2005)
Kommentar
Fra : Lars HT


Dato : 25-01-05 21:29


"Lars Thomsen Nielsen" <lars@EraseThisflexcom.dk> wrote in message
news:ct5hek$18e7$1@news.cybercity.dk...
> Jeg synes at Irfanview (www.irfanview.com) er ganske hurtig og den kan man
> programmere med command line options. Afsnittet nederst i dette indlæg er
> taget direkte fra hjælpen i Irfanview og som det ser ud kan du have glæde
> af resize funktionen, men jeg har nu ikke kigget nærmere på det.

Hej igen

Har nu eksperimenteret med resize plus diverse flere. Uanset hva jeg gør,
kan jeg ikke få lavet thumbnails med f.eks. resize-parameteren nær ligeså
hurtigt, som irfanview laver dem og viser dem. Selv hvis jeg lægger tiden,
det tager for irfanview at generere thumbs til skærmen sammen med tiden, det
tager for IrfanView at lagre alle thumbs´ene som selvstændige filer
(fratrukket selvfølgelig tiden det tager, at jeg fumler med museklik), er
det stadig hurtigere, end hvis jeg skulle lave dem manuelt med en
batch-kommando!
Så jeg undret mig over, hvordan IrfanView kan generere dem så hurtigt!

Har du eller andre et bud på dette?

Lars



Lars Thomsen Nielsen (26-01-2005)
Kommentar
Fra : Lars Thomsen Nielsen


Dato : 26-01-05 09:19

> Har du eller andre et bud på dette?

Kunne du ikke prøve at skrive de kodelinier du har anvendt?

Lars



Lars HT (26-01-2005)
Kommentar
Fra : Lars HT


Dato : 26-01-05 10:35


"Lars Thomsen Nielsen" <lars@EraseThisflexcom.dk> wrote in message
news:41f752b2$0$266$bc7fd3c@news.sonofon.dk...
> > Har du eller andre et bud på dette?
>
> Kunne du ikke prøve at skrive de kodelinier du har anvendt?
>

Eksempler kommer her:

i_view32.exe c:\*.jpg /resample=(100,100) /aspectratio
/convert=d:\temp\*.jpg

i_view32.exe c:\*.jpg /resize=(100,100) /aspectratio /convert=d:\temp\*.jpg

Begge operationer danner de nye jpeg-thumbs med ca 2 pr. sek.

Hvis jeg istedet skriver:
i_view32.exe c:\ /filepattern="*.jpg" /thumbs
vises thumbs'ene i IrfanView GUI'en næsten momentant!

Hvad er egentlig forskellen på resample og resize, ved du det?

Lars



Lars Thomsen Nielsen (26-01-2005)
Kommentar
Fra : Lars Thomsen Nielsen


Dato : 26-01-05 21:40

> i_view32.exe c:\*.jpg /resample=(100,100) /aspectratio
> /convert=d:\temp\*.jpg
> i_view32.exe c:\*.jpg /resize=(100,100) /aspectratio
> /convert=d:\temp\*.jpg
>
> Begge operationer danner de nye jpeg-thumbs med ca 2 pr. sek.

Det afhænger nok lidt af hvor store billederne er og hvilken maskine du
arbejder med. På min Notebook P4 2,5 Gz tager et 3,3 Mpixel foto ca. 0,25
sekund pr stk. at forvandle til en thumb.


> i_view32.exe c:\ /filepattern="*.jpg" /thumbs
>
> vises thumbs'ene i IrfanView GUI'en næsten momentant!

Ja, det gør den også på min. Jeg gætter på at det skyldes at den netop ikke
skriver de enkelte billeder i selvstændige filer, men blot bruger noget
hukommelse til at vise dem. Det kan godt være jeg tager fejl, men det kunne
da være en mulighed.


> Hvad er egentlig forskellen på resample og resize, ved du det?

Nææh, ikke andet end at resample efter sigende skulle tage lidt ekstra tid
og kvaliteten skulle blive bedre. Den bruger muligvisvis nogle
beregningsfiltre, hvor resize blot skærer hårdt af (trunkerer), men også
dette er kun et gæt.

Lars Thomsen Nielsen



Lars HT (27-01-2005)
Kommentar
Fra : Lars HT


Dato : 27-01-05 08:21


"Lars Thomsen Nielsen" <lars@EraseThisflexcom.dk> wrote in message
news:ct8v3l$1j6f$1@news.cybercity.dk...
>> i_view32.exe c:\*.jpg /resample=(100,100) /aspectratio
>> /convert=d:\temp\*.jpg
>> i_view32.exe c:\*.jpg /resize=(100,100) /aspectratio
>> /convert=d:\temp\*.jpg
>>
>> Begge operationer danner de nye jpeg-thumbs med ca 2 pr. sek.
>
> Det afhænger nok lidt af hvor store billederne er og hvilken maskine du
> arbejder med. På min Notebook P4 2,5 Gz tager et 3,3 Mpixel foto ca. 0,25
> sekund pr stk. at forvandle til en thumb.
>
Min processor er 1,8 GHz og billederne er 7-800 kB pr. stk


>
>> i_view32.exe c:\ /filepattern="*.jpg" /thumbs
>>
>> vises thumbs'ene i IrfanView GUI'en næsten momentant!
>
> Ja, det gør den også på min. Jeg gætter på at det skyldes at den netop
> ikke skriver de enkelte billeder i selvstændige filer, men blot bruger
> noget hukommelse til at vise dem. Det kan godt være jeg tager fejl, men
> det kunne da være en mulighed.
>

Det er også min konklusion! Når man ser på konverterings-hastigheder ift
processor og filstr.ser det også ud til, at det afgørende er antallet af
filer og ikke så meget deres størrelse. Åbenbart er det harddisk-arbejdet
med at skrive til disken, som koster tiden!

Jeg tror, jeg skriver til Irfan, og spørger ham, hvordan IrfanView GUI
klarer arbejdet så hurtigt. Har gjort det før, og han plejer at være flink
til at svare hurtigt!
Jeg vender tilbage hertil, hvis det giver noget nyt!


>
>> Hvad er egentlig forskellen på resample og resize, ved du det?
>
> Nææh, ikke andet end at resample efter sigende skulle tage lidt ekstra tid
> og kvaliteten skulle blive bedre. Den bruger muligvisvis nogle
> beregningsfiltre, hvor resize blot skærer hårdt af (trunkerer), men også
> dette er kun et gæt.
>

Okay!

Hej fra Lars



Lars Thomsen Nielsen (27-01-2005)
Kommentar
Fra : Lars Thomsen Nielsen


Dato : 27-01-05 08:45

> Jeg tror, jeg skriver til Irfan, og spørger ham, hvordan
IrfanView GUI
> klarer arbejdet så hurtigt. Har gjort det før, og han plejer at
være
> flink til at svare hurtigt!
> Jeg vender tilbage hertil, hvis det giver noget nyt!

Jeg har også skrevet til Irfan et par gange Han er faktisk
rigtigt flink og det er også lykkedes mig at få inkluderet et par
ændringer i programmet, bla. advarsel mod overskrivning ved
bacthkørsler (jeg mistede nemlig en stribe billeder) og watermark
med tekst.

Jeg vil gerne høre til det hans evt. svar hvis du hører fra ham.

PS. Selvom Irfanview er gratis kan man som bruger godt overveje
at donere en skilling til ham, for det har han nu fortjent med
det vildt gode program. Det opfordrer han faktisk også til. Gør
man det kommer man automatisk på hans mailingliste. Jeg må dog
med skam erkende at jeg ikke har givet ham et bidrag endnu, men
det skyldes mest at jeg ikke nærer for stor tiltro til PayPal,
som han anvender.

Lars



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste