我正在使用LibHaru库来生成Pdf报告。在这份报告中,我还要画一幅图像。图像存在于文件中(可以是.jpg,.png,.JPEG)。
如何安全地获取此图像的数据并传递给LibHaru的HPDF_Page_DrawImage(HPDF_Page page, HPDF_Image image, HPDF_REAL x, HPDF_REAL y, HPDF_REAL width, HPDF_REAL height);
方法?
PS:我不想使用其他库(如opencv,libpng等)来阅读图片。 LibHaru还提供了两种不同的方法来加载文件中的图像,即HPDF_LoadPngImageFromFile()
和HPDF_LoadRawImageFromFile(HPDF_Doc pdf, const char *filename, HPDF_UINT width, HPDF_UINT height, HPDF_ColorSpace color_space)
。 HPDF_LoadRawImageFromFile()
的缺点是您需要事先知道要加载的图像的width
和height
,这在我的情况下是不可能的。
更新:我尝试使用HPDF_Image Image = HPDF_LoadPngImageFromFile(pdf, "E:/images/logo.png");
,但这导致VS21010中出现以下链接器错误
LibHaru.lib(hpdf_image_png.obj) : error LNK2019: unresolved external symbol png_set_strip_16 referenced in function LoadPngData
答案 0 :(得分:0)
在审查了以下示例之后:
https://github.com/libharu/libharu/wiki/Examples
有一个加载图像并获取其数据的示例,我明确地查看了png_demo.c文件,其中包含以下示例:
image = HPDF_LoadPngImageFromFile (pdf, filename1);
/* Draw image to the canvas. */
HPDF_Page_DrawImage (page, image, x, y, HPDF_Image_GetWidth (image),
HPDF_Image_GetHeight (image));
LibHaru有一整套文档: https://github.com/libharu/libharu/wiki/Installation
HPDF_LoadPngImageFromFile方法返回文件的HPDF_Image,它可能是获取图像指针的最接近的文件,在文档中可以找到有关图像信息的函数,例如宽度,高度,每个组件的位数位于此页面上: https://github.com/libharu/libharu/wiki/API%3A-Image
在没有使用其他库的情况下,这是我能提供的最多。