2012-07-26 18 views
12

Mam obraz tiff z dwiema stronami. po przekonwertowaniu pliku do formatu JPG straciłem drugie strony. Czy istnieje sposób, aby umieścić dwa obrazy na pliku tiff w jednym pliku jpg. Ponieważ pliki TIFF są zbyt duże, muszę zmniejszyć ich rozmiary. Czy istnieje jakiś sposób, aby programowo zmniejszyć rozmiar plików TIFF? Może to być również analiza mojego problemu:Konwertuj tiff na format jpg

+0

Jaki język pracujesz w? :) –

+0

Przepraszam za mniej informacji :) C# .net – ozman

+1

Jeśli korzystasz z systemu Linux, możesz użyć polecenia [convert command] (http://www.imagemagick.org/script/convert.php), aby dołączyć wiele obrazów tiff. na przykład ** convert -append ** _img1.tiff img2.tiff img3.tiff_ ** result.jpg ** – chochim

Odpowiedz

27

Ponieważ TIFF może zawierać wiele klatek, ale JPG nie może tego zrobić, musisz przekonwertować każdą pojedynczą ramkę na JPG.

Zrobione z 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

Cześć, procesy działają dobrze, ale obrazy stworzyły właśnie ciemne (czarny pierwszy plan). czego mi brakuje? –

0

Mamy do czynienia pewne problemy podczas konwertowania plików TIF do JPEG, TIF, ponieważ obsługuje kilka rodzajów masażu, które nie są obsługiwane w wolnych zestawów narzędzi. Przeszukałem Internet i wypróbowałem kilka komercyjnych zestawów narzędzi, ale większość z nich jest trudna do wdrożenia z wieloma ograniczeniami. Zestaw narzędzi, który zwrócił moją uwagę, to ołówki, ponieważ obsługuje ładowanie i zapisywanie wielu formatów plików (w tym obrazów TIF z różnymi kompresjami). Wykorzystaliśmy ten zestaw narzędzi do konwersji naszych obrazów do formatu JPEG. Możesz znaleźć więcej informacji na stronie: http://support.leadtools.com/CS/forums/8925/ShowPost.aspx

pamiętać, że można zamienić dowolny kodu VB.NET do C# za pomocą tego darmowy konwerter kodu: 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

Dobra odpowiedź, ale zwykle podanie wyjaśnienia, co robi kod, jest preferowane wraz z kodem. – MattD