Ho un'immagine tiff con due pagine. quando converto il file in formato jpg ho perso le seconde pagine. C'è un modo per mettere due immagini su file tiff in un file jpg. Dato che i file tiff sono troppo grandi devo ridurre le loro dimensioni.è possibile in qualche modo ridurre la dimensione dei file tiff in modo programmatico? Potrebbe anche essere la soluzione per il mio problemaconvertire tiff in formato jpg
risposta
Poiché un TIFF può contenere più fotogrammi ma JPG non può, devi convertire ogni singolo fotogramma in un JPG.
Tratto da 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;
}
}
Ciao, i processi funzionano bene, ma le immagini hanno creato un colore scuro (nero in primo piano). cosa mi manca? –
abbiamo dovuto affrontare alcuni problemi durante la conversione di file TIF in JPEG, in quanto formato TIF supporta alcuni tipi di compressioni che non sono supportati in toolkit gratuito. Ho cercato su internet e ho provato alcuni toolkit commerciali, ma molti di loro sono difficili da implementare con molte limitazioni. Il toolkit che ha attirato la mia attenzione è leadtools, perché supporta il caricamento e il salvataggio di molti formati di file (incluse le immagini TIF con diverse compressioni). Abbiamo usato questo toolkit per convertire le nostre immagini in formato JPEG. E 'possibile trovare maggiori informazioni nella pagina seguente: http://support.leadtools.com/CS/forums/8925/ShowPost.aspx
Si noti che è possibile convertire qualsiasi codice VB.Net a C# utilizzando questo convertitore codice libero: http://www.developerfusion.com/tools/convert/vb-to-csharp/
using System.Drawing;
using System.Drawing.Imaging;
Bitmap bm=Bitmap.FromFile("photo.tif");
bm.Save("photo.jpg",ImageFormat.Jpeg);
Una buona risposta, ma di solito fornisce una spiegazione di ciò che il codice sta facendo è preferito insieme al codice. – MattD
Che lingua stai lavorando in? :) –
scusate per meno informazioni :) C# .net – ozman
Se siete su linux, potete usare [convert comando] (http://www.imagemagick.org/script/convert.php) per aggiungere più immagini tiff. per esempio. ** convert -append ** _img1.tiff img2.tiff img3.tiff_ ** result.jpg ** – chochim