Используя библиотеку System.Drawing.Image в .Net 4.8, как я могу получить ширину и высоту страницы 2 изображения?
В настоящее время я использую следующее, чтобы получить ширина и высота первой страницы. Но не уверен, как получить ширину и высоту второй страницы. Сначала я просто думал, что все страницы на изображениях будут одинакового размера, но оказалось, что мое тестовое изображение (из трех изображений) имеет очень разные размеры.
using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
{
using (Image tif = Image.FromStream(stream, false, false))
{
float width = tif.PhysicalDimension.Width;
float height = tif.PhysicalDimension.Height;
_imageSize = new Size((int)width, (int)height);
}
}
Также пробовал использовать этот метод, но чувствую, что делаю что-то не так, поскольку сохранение растрового изображения в байтовый поток занимает много времени. Это очень медленно.
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (Bitmap bm = (Bitmap)Image.FromStream(fs, false, false))
{
int frameCount = bm.GetFrameCount(FrameDimension.Page);
if (pageNum < 1)
throw new Exception("The page number can't be less then 1.");
if (pageNum > frameCount)
throw new Exception($"The page number ({pageNum}) can not exceed the total pages ({frameCount}).");
bm.SelectActiveFrame(FrameDimension.Page, pageNum - 1);
MemoryStream byteStream = new MemoryStream();
// This is REALLY slow, tried using bmp format too
bm.Save(byteStream, ImageFormat.Tiff);
Image page = Image.FromStream(byteStream);
float width = page.PhysicalDimension.Width;
float height = page.PhysicalDimension.Height;
return new Size((int)width, (int)height);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-the-sys
Как я могу получить ширину и высоту второй страницы многостраничного изображения, используя класс System.Drawing.Image? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ColorTranslator существует как в System.Drawing.Common, так и в System.Drawing.Primitives.
Anonymous » » в форуме C# - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-