2012-07-26 169 views
12

我有两页tiff图像。 当我将文件转换为jpg格式时,我丢失了第二页。 有没有什么办法可以将tiff文件中的两个图像放到一个jpg文件中。 由于tiff文件太大,我不得不减小尺寸。有没有办法以编程方式减小tiff文件的大小?它也可能是我的问题的独奏将tiff转换为jpg格式

+0

您的公司从事什么语言? :) – 2012-07-26 12:08:05

+0

对不起有关信息:) c#.net – ozman 2012-07-26 12:10:31

+1

如果你在linux上,你可以使用[convert command](http://www.imagemagick.org/script/convert.php)来追加多个tiff图像。例如**转换-append ** _img1.tiff img2.tiff img3.tiff_ ** result.jpg ** – chochim 2012-07-26 12:15:26

回答

27

由于TIFF可以包含多个帧但JPG不能,您需要将每个单帧转换为JPG格式。

Windows Dev Center Samples摘自:

public static string[] ConvertTiffToJpeg(string fileName) 
{ 
     using (Image imageFile = Image.FromFile(fileName)) 
     { 
      FrameDimension frameDimensions = new FrameDimension( 
       imageFile.FrameDimensionsList[0]); 

      // Gets the number of pages from the tiff image (if multipage) 
      int frameNum = imageFile.GetFrameCount(frameDimensions); 
      string[] jpegPaths = new string[frameNum]; 

      for (int frame = 0; frame < frameNum; frame++) 
      { 
       // Selects one frame at a time and save as jpeg. 
       imageFile.SelectActiveFrame(frameDimensions, frame); 
       using (Bitmap bmp = new Bitmap(imageFile)) 
       { 
        jpegPaths[frame] = String.Format("{0}\\{1}{2}.jpg", 
         Path.GetDirectoryName(fileName), 
         Path.GetFileNameWithoutExtension(fileName), 
         frame); 
        bmp.Save(jpegPaths[frame], ImageFormat.Jpeg); 
       } 
      } 

      return jpegPaths; 
     } 
} 
+0

嗨,进程运行良好,但图像创建了一个黑暗的(黑色前景)。我错过了什么? – 2013-02-12 10:29:21

0

我们转换TIF文件,JPEG时,因为TIF格式支持某些类型未在免费工具包支持的压缩所面临的一些问题。 我搜索了互联网并尝试了一些商业工具包,但其中大多数都很难实施,有很多限制。引起我注意的工具包是leadtools,因为它支持加载和保存许多文件格式(包括具有不同压缩的TIF图像)。我们使用这个工具包将我们的图像转换为JPEG格式。您可以在以下页面了解更多信息: http://support.leadtools.com/CS/forums/8925/ShowPost.aspx

请注意,您可以通过使用这个免费的代码转换器转换成任何VB.Net代码到C#: http://www.developerfusion.com/tools/convert/vb-to-csharp/

3
using System.Drawing; 
using System.Drawing.Imaging; 

Bitmap bm=Bitmap.FromFile("photo.tif"); 
bm.Save("photo.jpg",ImageFormat.Jpeg); 
+0

很好的答案,但通常会提供关于代码的解释以及代码。 – MattD 2016-04-22 21:56:55