Существует два важных фактора, определяющих эффективное вращение изображения, текущую матрицу преобразования во время рисования изображения (которая также фиксирует размеры изображения) и поворот страницы.
Вы можете определить эти значения, как показано ниже в коде вы ссылаетесь:
...
public static Dictionary<string, System.Drawing.Image> ExtractImages(string filename)
{
var images = new Dictionary<string, System.Drawing.Image>();
using (var reader = new PdfReader(filename))
{
var parser = new PdfReaderContentParser(reader);
ImageRenderListener listener = null;
for (var i = 1; i <= reader.NumberOfPages; i++)
{
// v-- Determine clockwise rotation of page
Console.WriteLine("Page {1} is rotated by {0}°.\n", reader.GetPageRotation(i), i);
// ^-- Determine clockwise rotation of page
parser.ProcessContent(i, (listener = new ImageRenderListener()));
var index = 1;
[...]
}
return images;
}
}
...
public void RenderImage(ImageRenderInfo renderInfo)
{
// v-- Determine transformation matrix of image
Matrix ctm = renderInfo.GetImageCTM();
Console.WriteLine("Found image with transformation matrix:\n{0}\n", ctm);
// ^-- Determine transformation matrix of image
PdfImageObject image = renderInfo.GetImage();
PdfName filter = (PdfName)image.Get(PdfName.FILTER);
[...]
}
...
Выход в вашем случае:
Page 1 is rotated by 270°.
Found image with transformation matrix:
792,0001 0 0
0 612 0
0 0 1
Found 1 images on page 1.
Таким образом, матрица преобразования, очевидно, только масштабирует изображение, чтобы соответствующие размеры без поворота, но сама страница определяется как показанная на 270 °.
Это соответствует моим наблюдениям. В частности, в отличие от того, что вы сказали:
но когда я извлечь изображение в изображение поворачивается на 180 градусов
Я получаю изображение из вашего кода, который должен быть повернут на 270 ° по часовой стрелке быть в вертикальном положении.
Если вы действительно получили изображение, повернутое на 180 °, вам следует проверить версию iTextSharp, которую вы используете. Архив на веб-сайте, на который вы ссылаетесь, содержит довольно старую версию, 5.3.5.0, и ошибки могут быть исправлены за это время.
@BradLarson * Изображение было чувствительного характера и ненужным. * - «Чувствительная природа» ** да **, «лишний» ** нет **. Без образца я мог бы не упомянуть о вращении страницы, а просто матрицу преобразования, которая бы не помогла ОП. (Но из-за характера pdf я действительно воздержался от добавления скриншотов в ответ.) – mkl
@ mkl - Все, что я могу сказать, это то, что люди протестуют против его включения через флаги, и это не показалось критическим. –