Ошибка выделения памяти в libharu при загрузке образа

У меня есть код на C, пытающийся использовать libharu. Хотя я могу использовать все функции этой библиотеки (даже UTF8), я с трудом рисую изображения. Вот некоторый очень простой код:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <setjmp.h>
#include "hpdf.h"

jmp_buf env;

#ifdef HPDF_DLL
void  __stdcall
#else
void
#endif
error_handler  (HPDF_STATUS   error_no,
                HPDF_STATUS   detail_no,
                void         *user_data)
{
    printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
                (HPDF_UINT)detail_no);
    longjmp(env, 1);
}

int main (int argc, char **argv)
{
    HPDF_Doc  pdf;
    HPDF_Font font;
    HPDF_Page page;
    char fname[256];
    HPDF_Image image;

    strcpy (fname, argv[0]);
    strcat (fname, ".pdf");

    pdf = HPDF_New (error_handler, NULL);
    if (!pdf) {
        printf ("error: cannot create PdfDoc object\n");
        return 1;
    }

    /* error-handler */
    if (setjmp(env)) {
        HPDF_Free (pdf);
        return 1;
    }


    font = HPDF_GetFont (pdf, "Helvetica", NULL);


    page = HPDF_AddPage (pdf);

    HPDF_Page_SetWidth (page, 550);
    HPDF_Page_SetHeight (page, 500);

    image = HPDF_LoadPngImageFromFile (pdf, "img.png");


    HPDF_SaveToFile (pdf, fname);


    HPDF_Free (pdf);

    return 0;
}

Когда я собираю это у меня есть ERROR: error_no=1015, detail_no=0, Я нашел похожий пост в stackru: это. Однако, хотя оригинальный плакат сказал, что проблема решена, это вряд ли помогло моему. Я переместил img.png в папку и перекомпилировал файл. Изменил код который говорит /home/name/path/to/img.png который является прямым путем к изображению. Ничего не работает У меня "всегда" одна и та же ошибка, но когда я меняю имя файла, у меня есть ERROR: error_no=1017, detail_no=2 что в основном означает, что программа не может найти изображение (согласно ссылке на libharu). Итак, я понял, что программа находит img.png; но, как ни странно, не может выделить необходимую память. Что странно, потому что я не вижу причин для этой программы не выделять память. У меня есть все виды разрешений.

Я использую GCC 4.7.2 под Ubuntu Quantal Quetzal и libharu 2.3.0 RC2. Спасибо за помощь.

1 ответ

Здравствуйте, равенства многочленов.

Я также столкнулся с той же проблемой, когда интегрировал haru sdk в моей среде macOS.

В error_handler вернулся ERROR: error_no=1017, detail_no=2, а затем я проверил официальный документ на предмет haruна http://libharu.sourceforge.net/error_handling.html запрос 0x1017указывает на то, что файл не удалось открыть, поэтому я подозреваю , что второй параметр из HPDF_LoadPngImageFromFileМетод должен передавать точный путь к файлу изображения png , поэтому после того, как я его изменил, проблема была решена, и я надеюсь помочь вам.

код объявления следующий:

      char filename1[255];
strcpy(filename1, "/Users/xx/Downloads/lusaceg.com.png");
image = HPDF_LoadPngImageFromFile (pdf, filename1);

С уважением.

Другие вопросы по тегам