У меня есть холст с растровым изображением документа и несколькими текстовыми полями в разных местах. Текстовые поля существуют, чтобы блокировать текст позади него, но также могут содержать текст сверху (представьте, что вы блокируете текст в конфиденциальном документе). Все это необходимо сохранить в виде файла TIFF.
Мне удалось легко сохранить изображение, однако сохранение текстовых полей поверх оказалось реальной проблемой. Вот что у меня сейчас.
//The document bitmap is the first item in the canvas
foreach (Control redaction in canvas.Children)
{
Size sizeOfControl = new Size(redaction.Width, redaction.Height);
renderBitmap = new RenderTargetBitmap((Int32)sizeOfControl.Width, (Int32)sizeOfControl.Height, 96d, 96d, PixelFormats.Pbgra32);
renderBitmap.Render(redaction);
tiffEncoder.Frames.Add(BitmapFrame.Create(frame));
}
FileStream fs = new FileStream(outputFileName, FileMode.Create);
tiffEncoder.Save(fs);
fs.Flush();
fs.Close();
Когда я не добавляю растровое изображение документа в tiffEncoder, он сохраняет черное изображение, которое говорит мне, что оно не преобразует текстовые поля правильно (или, по крайней мере, так, как я этого хочу).
Так это вообще возможно?