我正在尝试使用PrintImageLocations提取嵌入到PDF中的图像的x、y、宽度和高度。java按照以下位置:
https://svn.apache.org/repos/asf/pdfbox/tags/2.0.3/examples/src/main/java/org/apache/pdfbox/examples/util/PrintImageLocations.java
然而,返回值的所有实例都与我所期望的不一致。由于这些值远远不正常,我从下面的位置运行了SaveImagesInPdf类,以确保PDFBox看到的是正确的图像,它确实完美地定位和提取了所需的图像。
https://www.tutorialkart.com/pdfbox/extract-images-from-pdf-using-pdfbox/
我所期望的是相同的x,y,宽度和高度,我将作为矩形2D输入到PDFTextStripperByArea类时提取特定文本。
我做了大量的互联网研究,我真的找不到一个直接的答案。从我所读到的,我认为我用来提取文本的坐标系统与用于图像的坐标系统不同。
如果是这种情况,是否有任何转换值,PrintImageLocations.java带回矩形2D坐标我使用PDFTextStripperByArea?
在这个问题上的任何帮助将不胜感激。
我有一个类似的问题。我的图像的Y位置相差甚远(页面顶部而不是页面底部)。经过大量搜索,我终于找到了一个新的PrintImageLocations,其中包含以下代码,它会进行必要的调整以纠正问题:
PDImageXObject image = (PDImageXObject)xobject;
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
Matrix ctmNew = getGraphicsState().getCurrentTransformationMatrix();
float imageXScale = ctmNew.getScalingFactorX();
float imageYScale = ctmNew.getScalingFactorY();
float yScaling = ctmNew.getScaleY();
float angle = (float)Math.acos(ctmNew.getValue(0, 0)/ctmNew.getScaleX());
if (ctmNew.getValue(0, 1) < 0 && ctmNew.getValue(1, 0) > 0)
{
angle = (-1)*angle;
}
PDPage page = getCurrentPage();
double pageHeight = page.getMediaBox().getHeight();
ctmNew.setValue(2, 1, (float)(pageHeight - ctmNew.getTranslateY() - Math.cos(angle)*yScaling));
ctmNew.setValue(2, 0, (float)(ctmNew.getTranslateX() - Math.sin(angle)*yScaling));
// because of the moved 0,0-reference, we have to shear in the opposite direction
ctmNew.setValue(0, 1, (-1)*ctmNew.getValue(0, 1));
ctmNew.setValue(1, 0, (-1)*ctmNew.getValue(1, 0));
System.out.println("NEW NEW: position in PDF = " + ctmNew.getTranslateX() + ", " + ctmNew.getTranslateY() + " in user space units");
我想知道是否有人帮助我理解如何将顶部图像转换为底部图像。以下链接中提供了这些图像。顶部图像采用笛卡尔坐标。底部图像是极坐标中的转换图像
我有一个包含坐标的.csv文件,我需要在我做过的地图上使用python绘制它们。有人能帮我吗?
我在将图像转换为极坐标时遇到问题。在Photoshop中很容易:)所以这对我来说是一个新领域。 我有以下图片: 结果应该是这样的: 我在这里看了一下,了解了一些基本知识,但仍然对圆的平方有点困惑: 我几乎不知道如何重新绘制图像。还有一个警告:由于管理限制,我想避免使用像Numpy这样的外部库。
我试图计算一种有效的方法,将笛卡尔坐标系中的图像转换为极坐标表示。我知道ImToPolar等一些功能正在实现这一点,它工作得很好,但对于大图像来说需要相当长的时间,尤其是当它们需要来回处理时。 这是我的输入图像: 然后我使用以0为中心的笛卡尔网格和函数生成一个极网格。最后,我使用绘制我的图像。 这是我得到的: 这正是我需要的图像,它与ImToPolar相同,或者更好。 既然MATLAB知道如何计算
我有一张以色列地图。 我需要创建一个获得两个双参数(经度和纬度)的函数,该函数应该在地图图像中的那个区域上画一个小圆圈。 我有以下关于地图的信息: null 截图: https://gyazo.com/5a19dece37ebace496c6b8d68eb9ec3c
我正在尝试使用wp rest api返回一个博客帖子列表,包括标题、摘录和特色图片。使用下面的方法,我可以返回标题和摘录,但特征图像会导致致命错误:无法将stdClass类型的对象用作数组。 有人能告诉我我做错了什么吗?