'дюйм' образом в формате PDF (или PostScript) является более туманным, чем вы думаете. Это связано с тем, что можно визуализировать PDF в разных масштабах, и, следовательно, значение dpi будет меняться.
Вы правы, что есть информация о масштабном коэффициенте изображения, размещенного в документе. Это текущая матрица трансформации, но она не такая простая, как одно значение или даже одна матрица.
CTM отображает координаты в идеализированное «пользовательское пространство», которое номинально определяется в точках (72 на дюйм), но бесконечно делимое. Когда дело доходит до рендеринга, «пространство пользователя» имеет дополнительное преобразование, применяемое для правильного масштабирования его в «пространство устройства», требуется преобразование, потому что устройство, вероятно, не 72 dpi.
Вы можете найти более полное объяснение этого в Справочном руководстве по PDF, особенно в разделе 4.2.1 в ссылке 1.7.
Итак, все, что вам нужно сделать, это взять объявленную/ширину и/высоту из словаря изображений и применить/Матрицу, чтобы определить, насколько велико изображение в пространстве пользователя. Учитывая, что пространство пользователя составляет 72 dpi, вы знаете, сколько сантиметров было масштабировано для изображения, количество пикселей, которое содержит изображение, и простое разделение даст вам ответ, который вы хотите.
Действительно, в возможных случаях это будет работать. Однако одна из проблем с вашей точки зрения состоит в том, что возможно, действительно, общий способ конкатенации матриц влиять на текущее масштабирование, поэтому просто смотреть на матрицу, примененную к изображению, не даст вам масштабного коэффициента, применяемого к этому изображение, потому что что-то еще может уже масштабировать CTM. Кроме того, PDF содержит «UserUnit» kludge, который позволяет файлу изменять масштабирование по умолчанию для пользовательского пространства.
Таким образом, единственный способ выработать «dpi» изображения - интерпретировать описание страницы до точки, в которой отображается изображение, выработать полное масштабирование в этой точке и оттуда выяснить, сколько площади обложки изображений. Затем задайте ширину и высоту изображения, обработайте его dpi.
Попутно, вот вам загадка; его вполне возможно сделать одно и то же изображение несколько раз в PDF, используя одни и те же данные изображения. Вам нужно только один раз включить данные изображения. Если я рисую изображение, которое составляет 100 пикселей на 100 пикселей, и я рисую его на один квадратный дюйм, разрешение составляет 100 dpi. Теперь я рисую то же изображение, но я масштабирую его, чтобы покрыть половину дюйма. Разрешение отображаемого изображения теперь составляет 200 dpi.
Итак, что такое «dpi изображения»?
спасибо budwiser. это в основном то, с чем я столкнулся.это немного разочаровывает, потому что я знаю, что информация есть, я просто не могу понять, как получить к ней доступ:/ – jacob
http://stackoverflow.com/questions/1564529/how-to-get-dpi-width-and- length-of-an-image-in-pdf-in-php – budwiser
@budwiser: jacob уже цитировал # 1564529 в своем первоначальном вопросе - разве вы не видели? –