从C 中的文件中读取图像,然后传递到Libharu的绘制方法

Read an image from file in C++ and pass to the DrawImage method of Libharu

本文关键字:Libharu 绘制 方法 文件 读取 图像 然后      更新时间:2023-10-16

我正在使用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()的缺点是您需要事先加载图像的widthheight,这在我的情况下是不可能的。

更新:我尝试使用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

在查看示例之后:

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:-image

这是我最多可以提供的而无需使用其他库。