Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image PDF计算高度及;绘图图像的宽度_Image_Pdf - Fatal编程技术网

Image PDF计算高度及;绘图图像的宽度

Image PDF计算高度及;绘图图像的宽度,image,pdf,Image,Pdf,我的程序读取PDF文件,需要知道绘制到页面的图像的大小(以用户空间单位为单位) 有人能帮我举个例子吗? MediaBox=[0 0 612 792](以用户空间单位表示的页面大小) 原始尺寸(宽/高)=155/76(如图像字典中所规定) 图像绘制说明: q 74.4001310-36.000061249.100266224.240173厘米 /Im1 Do Q 因此值a-f为: a=74.400131 b=0 c=0 d=-36.000061 e=249.100266 f=224.240173

我的程序读取PDF文件,需要知道绘制到页面的图像的大小(以用户空间单位为单位)

有人能帮我举个例子吗?

MediaBox=[0 0 612 792](以用户空间单位表示的页面大小) 原始尺寸(宽/高)=155/76(如图像字典中所规定)

图像绘制说明:

q 74.4001310-36.000061249.100266224.240173厘米 /Im1 Do
Q

因此值a-f为:

a=74.400131

b=0

c=0

d=-36.000061

e=249.100266

f=224.240173

这将产生以下矩阵:

74.4001310

0-36.000061 0

249.100266224.240173 1

还提供了以下公式:

x′=a×x+c×y+e y′=b×x+d×y+f

因此,我现在想做的是,使用上述公式计算左上角、右上角和左下角的坐标,然后使用以下公式:

w=TopRightX TopLeftX h=底部左撇子顶部左撇子

但是:如何计算这些坐标?我试着计算右下角,例如:

X=74.400131*155+0*76+249.100266=11`781.120

此结果不可能是正确的…

有人能帮我正确计算吗?


谢谢你的帮助

您忘记了从用户空间到设备空间的转换。 图片中的矩阵与前一个矩阵连接(通常表示页面大小和缩放)

图像矩阵中的值计算如下

width        0             0
  0       height           0
  x   page_h-(y+height)    1

在PDF中,图像被视为用户空间单位为1x1。变换矩阵用于按所需大小缩放要显示的图像。变换矩阵中的a和d元素表示缩放因子,因此在您的情况下,显示图像的大小(以用户空间单位表示)为74.400131*36.000061点(默认用户空间单位)。你的例子是最简单的情况,因为我假设在q操作符之前没有其他东西。但在PDF中,变换矩阵是串联的,因此您必须执行整个内容流,以便在显示图像时看到实际的变换矩阵

谢谢,但我已经解决了。但答案是正确的;)