Re: Многостраничный TIFF
От: algol Россия about:blank
Дата: 17.09.05 22:28
Оценка: 16 (2)
Здравствуйте, Аноним, Вы писали:

А>Как записать многстраничный TIFF. Из MSDN я понял, как прочитать, точнее как выбрать страницу с которой будешь работать. SelectActiveFrame, вроде бы, должен позволять. А как добавить страницу? Нужно это для того, чтобы сложить несколько TIFF, в которых по одной странице, в один TIFF с несколькими страницами. Есть ли в .NET такая возможность. А если нет, то есть ли еще какой-нибудь способ "покороче", такой, чтобы не возиться в внутренним форматом TIFF? Приложение пишу на C#.


Нужно сначала сохранить первое изображение с параметром энкодера EncoderValue.MultiFrame, а затем добавить остальные изображения через SaveAdd с параметром EncoderValue.FrameDimensionPage. После сохранения всех страниц нужно закрыть файл вызовом SaveAdd с параметром EncoderValue.Flush. Вместо Flush можно указать EncoderValue.LastFrame при сохранении последней страницы.

    string path = "c:\\multipage.tif";
    Bitmap img = new Bitmap("c:\\image1.jpg");

    ImageCodecInfo inf = GetEncoderInfo("image/tiff");
    Encoder saveFlag = Encoder.SaveFlag;

    // Save first page
    System.Drawing.Imaging.EncoderParameters myEncoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
    myEncoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(saveFlag, (long)EncoderValue.MultiFrame);
    img.Save(path, inf, myEncoderParameters);

    // Save other pages
    myEncoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(saveFlag, (long)EncoderValue.FrameDimensionPage);
    Bitmap img2 = new Bitmap("c:\\image2.jpg");
    img.SaveAdd(img2, myEncoderParameters);
    Bitmap img3 = new Bitmap("c:\\image3.jpg");
    img.SaveAdd(img3, myEncoderParameters);

    // Close file
    myEncoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(saveFlag, (long)EncoderValue.Flush);
    img.SaveAdd(myEncoderParameters);
Многостраничный TIFF
От: Аноним  
Дата: 19.07.05 10:02
Оценка:
Как записать многстраничный TIFF. Из MSDN я понял, как прочитать, точнее как выбрать страницу с которой будешь работать. SelectActiveFrame, вроде бы, должен позволять. А как добавить страницу? Нужно это для того, чтобы сложить несколько TIFF, в которых по одной странице, в один TIFF с несколькими страницами. Есть ли в .NET такая возможность. А если нет, то есть ли еще какой-нибудь способ "покороче", такой, чтобы не возиться в внутренним форматом TIFF? Приложение пишу на C#.

08.08.05 17:49: Перенесено модератором из '.NET' — AndrewVK
Re: Многостраничный TIFF
От: Begemout Россия  
Дата: 17.09.05 07:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как записать многстраничный TIFF. Из MSDN я понял, как прочитать, точнее как выбрать страницу с которой будешь работать. SelectActiveFrame, вроде бы, должен позволять.


Привет, а удавалось ли тебе поднять таким образом многослойный (возможно не одно и то же, что многостраничный?) TIFF, создаваемый в Photoshop? Я пробовал с помощью GDI+, но выдает только один слой (склееный из всех, которые присутствуют в файле). Хотелось бы иметь доступ к каждому слою отдельно. Может ты уже разобрался с этой проблемой?
Re[2]: Многостраничный TIFF
От: Demaker  
Дата: 27.09.07 08:33
Оценка:
Вот тут всё сделано: http://www.codeproject.com/cs/media/SaveMultipageTiff.asp
Сохраняет в чёрно белом формате, но ето легко поправляется.
Переделал под цветной формат, сохраняет tif, но в 8 битном формате. Хотелось бы в 16-битном формате получать TIF.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.