Správičky 2 270 Blogy 577 Fórum 14 074

Vytváranie multistránkových TIFF súborov

spigi - 27. 5. 2004 0:14 - 10423 views

Ukážeme si, ako jednoducho vytvoríme viacstránkový TIFF súbor pomocou .NET Frameworku.

Vytvorenie viacstránkového TIFF súboru je jednoduchá záležitosť, len je potrebné zachovať jednoduchý postup. Kroky, ktoré je nutné spraviť musia nasledovať v správnom poradí.

TIFF je perfektný formát, ktorý nám umožní uložiť do jedného obrázku viac stránok, ktoré môžu mať rôznu veľkosť.

Ako základ viacstránkového TIFFu je jednoduchý objekt System.Drawing.Bitmap(), do ktorého potom postupne pridávame ďalšie a ďalšie stránky (alebo frames).

Najjednoduchšie si to vysvetlíme priamo na príklade:
(nezabudnite naimportovať namespace: Imports System.Drawing.Imaging)
'Nastavím si správny encoder pre TIFF
Dim _CodecInfo As ImageCodecInfo = Nothing
Dim ci As ImageCodecInfo

For Each ci In ImageCodecInfo.GetImageEncoders()
    If ci.MimeType
= "image/tiff" Then
        _CodecInfo
= ci
    End
If
Next ci

Dim ep As New EncoderParameters(1)
ep.Param(
0) = New EncoderParameter(Encoder.SaveFlag, CLng(EncoderValue.MultiFrame))

Dim myImage As Bitmap

'Otvorím prvý obrázok
myImage = CType(Image.FromFile("c:\tif_1.tif"), Bitmap)

'Uložím prvý obrázok (ako prvý frame)
myImage.Save("c:\multipage.tif", _CodecInfo, ep)

'Uložím ostatné rámiky
ep.Param(0) = New EncoderParameter(Encoder.SaveFlag, CLng(EncoderValue.FrameDimensionPage))
myImage.SaveAdd(
CType(Image.FromFile("c:\tif_2.tif"), Bitmap), ep)
myImage.SaveAdd(
CType(Image.FromFile("c:\tif_3.tif"), Bitmap), ep)
myImage.SaveAdd(
CType(Image.FromFile("c:\tif_4.tif"), Bitmap), ep)

'Uložím a zatvorím obrázok
ep.Param(0) = New EncoderParameter(Encoder.SaveFlag, CLng(EncoderValue.Flush))
myImage.SaveAdd(ep)

myImage.Dispose()
myImage
= Nothing
Načítanie presne definovanej stránky (myFrameIndex) z multistrankového tiffu
Dim myImage As Image = Image.FromFile("c:\multipage.tif")
Dim oFDimension As System.Drawing.Imaging.FrameDimension

oFDimension
= New System.Drawing.Imaging.FrameDimension _
(myImage.FrameDimensionsList(
0))

myImage.SelectActiveFrame(oFDimension, myFrameIndex)

Ing. Igor Stanek, ASP.NET MVP, MCP

Som spoluzakladateľom a spolumajiteľom spoločnosti CHASTIA s.r.o., Poprad (www.chastia.com). V spoločnosti pôsobím ako konateľ a Software Architect.

Prevádzkujem internetový portál na online prevod jednotiek na internete www.prevody.sk a prvý internetový portál o technológii Microsoft .NET na Slovensku www.vyvojari.sk (bývalé www.AspNet.sk).

Som držiteľom certifikácie Microsoft Certified Professional a zo strany Microsoftu som už 6 rokov za sebou ocenený titulom Microsoft Most Valuable Professional za kompetenciu "ASP.NET/IIS".

Ďalšie info o mne nájdete na mojej osobnej stránke www.spigi.sk.

Článkov: 105, Správičiek: 13, Príspevkov vo fóre: 560, Príspevkov v blogu: 124, Bodov: 15560
Najaktívnejší č.: 3
Profil používateľa

Reakcie

Titulok:


Meno:


Url:
Koľko je 22 + 4? (ochrana proti spamu)

Komentár:


Najaktívnejší užívatelia
1. 35110 b. photo vlko
2. 16735 b. photo T
3. 15560 b. photo spigi
4. 6635 b. photo dudok
5. 5705 b. photo slavof
6. 5205 b. photo siro
7. 4745 b. photo duracellko
8. 3780 b. photo Liero
9. 3690 b. photo lubolacko
10. 3625 b. photo jakub