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
Odpowiedz
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;
}
}
Cześć, procesy działają dobrze, ale obrazy stworzyły właśnie ciemne (czarny pierwszy plan). czego mi brakuje? –
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/
using System.Drawing;
using System.Drawing.Imaging;
Bitmap bm=Bitmap.FromFile("photo.tif");
bm.Save("photo.jpg",ImageFormat.Jpeg);
Dobra odpowiedź, ale zwykle podanie wyjaśnienia, co robi kod, jest preferowane wraz z kodem. – MattD
Jaki język pracujesz w? :) –
Przepraszam za mniej informacji :) C# .net – ozman
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