2012-07-26 31 views
12

Tengo una imagen tiff con dos páginas. cuando convierto un archivo a formato jpg perdí las segundas páginas. ¿Hay alguna manera de poner dos imágenes en un archivo tiff en un archivo jpg? Debido a que los archivos tiff son demasiado grandes, tengo que disminuir sus tamaños. ¿Hay alguna manera de disminuir el tamaño de los archivos tiff programáticamente? También podría ser una solución para mi problemaconvertir tiff a formato jpg

+0

Qué idioma está trabajando en? :) –

+0

disculpa por menos información :) C# .net – ozman

+1

Si estás en Linux, puedes usar [comando convertir] (http://www.imagemagick.org/script/convert.php) para agregar varias imágenes tiff. p.ej. ** convert -append ** _img1.tiff img2.tiff img3.tiff_ ** result.jpg ** – chochim

Respuesta

27

Dado que un TIFF puede contener varios marcos, pero JPG no puede necesitas convertir cada fotograma en un JPG.

Tomado de 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

Hola, el proceso funciona bien, pero las imágenes creadas son simplemente oscuras (primer plano en negro). ¿Qué me estoy perdiendo? –

0

nos enfrentamos a algunos problemas al convertir archivos TIF a JPEG, TIF ya que el formato es compatible con algunos tipos de compresiones que no están soportadas en conjuntos de herramientas libres. Busqué en Internet y probé algunas herramientas comerciales, pero la mayoría de ellas son difíciles de implementar con muchas limitaciones. El conjunto de herramientas que me llamó la atención son las herramientas de plomo, porque admite cargar y guardar muchos formatos de archivo (incluidas las imágenes TIF con diferentes compresiones). Usamos este kit de herramientas para convertir nuestras imágenes al formato JPEG. Puede encontrar más información en la siguiente página: http://support.leadtools.com/CS/forums/8925/ShowPost.aspx

Observe que puede convertir cualquier código de VB.Net a C# mediante el uso de este convertidor de código libre: 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

Es una buena respuesta, pero generalmente se proporciona una explicación de lo que el código está haciendo, junto con el código. – MattD

Cuestiones relacionadas