2012-07-26 175 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