Avatar billede casjachan Nybegynder
28. december 2004 - 10:18 Der er 1 kommentar og
1 løsning

Multipage tiff billede

Situationen er, at jeg har to tiff billeder der hver især indeholder flere sider (billeder). Mit spørgsmål er, hvordan jeg tager det ene tif-billedes sider og tilføjer i slutningen af det andet tiff-billede, sådan at jeg får et tiff-billede indeholdende alle siderne.

Svar må gerne være i både c# og vb
Avatar billede casjachan Nybegynder
28. december 2004 - 11:30 #1
Har selv fundet svaret:

Image billedeEkstra;
Image nytBillede = null;
Image billede;
//get the codec for tiff files
ImageCodecInfo info=null;
foreach(ImageCodecInfo ice in ImageCodecInfo.GetImageEncoders())
{
  if(ice.MimeType=="image/tiff")
  {
    info=ice;
  }
}
//use the save encoder
Encoder enc=Encoder.SaveFlag;
EncoderParameters ep=new EncoderParameters(1);
ep.Param[0]=new EncoderParameter(enc,(long)EncoderValue.MultiFrame);
   
int page = 0;       
int pageEkstra = 0;
int pageCountEkstra = 0;
int pageCount = 0;

billede = Image.FromFile(@"C:\1.tif");    //STIEN SKAL VÆRE TIL DEN FIL DER SKAL HAVE  TILFØJET SIDER
billedeEkstra = Image.FromFile("STI TIL DEN FIL DER HAR DE SIDER DER SKAL TILFØJES");
pageCountEkstra = billedeEkstra.GetFrameCount(FrameDimension.Page);
pageCount = billede.GetFrameCount(FrameDimension.Page);

nytBillede=Image.FromFile(@"C:\1.tif"); //STIEN SKAL VÆRE TIL DEN FIL DER SKAL HAVE TILFØJET SIDER

//save the first frame
string tempFileName = @"C:\"+System.Guid.NewGuid().ToString();//STI TIL MIDLERTIDIG FIL
nytBillede.Save(tempFileName,info,ep);
                               
for(page = 1; page < pageCount; page++)
{
    //save the intermediate frames
    ep.Param[0]=new EncoderParameter(enc,(long)EncoderValue.FrameDimensionPage);
    billede.SelectActiveFrame(FrameDimension.Page, page);
    nytBillede.SaveAdd(billede, ep);
}
for(pageEkstra = 0; pageEkstra < pageCountEkstra; pageEkstra++)
{
    //save the intermediate frames
    ep.Param[0]=new EncoderParameter(enc,(long)EncoderValue.FrameDimensionPage);
    billedeEkstra.SelectActiveFrame(FrameDimension.Page, pageEkstra);
    nytBillede.SaveAdd(billedeEkstra, ep);
}
File.Copy(tempFileName,"",true);//STIEN SKAL VÆRE TIL DEN FIL DER SKAL HAVE TILFØJET SIDE
File.Delete("Stien til filen med de ekstra sider");
File.Delete(tempFileName);
Avatar billede casjachan Nybegynder
28. december 2004 - 11:31 #2
Måske lidt kluntet kode, men det virker lige nu
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester