Исправлены ошибки в формате CImg и Jpg? [Дубликат]

Я обновил com.google.gms:google-services с 3.1.1 до 3.2.0, и предупреждение перестало появляться.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:3.2.0'
    }
}
2
задан PSlayer 4 September 2015 в 04:51
поделиться

2 ответа

Чтобы включить поддержку встроенного файла JPG в CImg, поместите это, прежде чем включать CImg.h:

#define cimg_use_jpeg
#include "CImg.h"
....

и соедините свой код с библиотекой libjpeg. Это безупречно работает для меня. Если вы этого не сделаете, CImg попытается выполнить внешний вызов инструмента преобразования ImageMagick для загрузки файла, что не является самым чистым решением. Использование libjpeg внутри CImg определенно лучше. Это работает одинаково для других форматов изображений (tiff, png, ...).

3
ответ дан bvalabas 26 August 2018 в 23:52
поделиться

Пробовали ли вы другие файлы изображений, кроме «lena.jpg»? Является ли «lena.jpg» в том же каталоге, что и текущая программа? Какой компилятор вы используете?

Работает ли этот пример (не имеет смысла, если он это сделал)?

#include "CImg.h"
using namespace cimg_library;
int main() {
  CImg<unsigned char> image("lena.jpg"), visu(500,400,1,3,0);
  const unsigned char red[] = { 255,0,0 }, green[] = { 0,255,0 }, blue[] = { 0,0,255 };
  image.blur(2.5);
  CImgDisplay main_disp(image,"Click a point"), draw_disp(visu,"Intensity profile");
  while (!main_disp.is_closed() && !draw_disp.is_closed()) {
    main_disp.wait();
    if (main_disp.button() && main_disp.mouse_y()>=0) {
      const int y = main_disp.mouse_y();
      visu.fill(0).draw_graph(image.get_crop(0,y,0,0,image.width()-1,y,0,0),red,1,1,0,255,0);
      visu.draw_graph(image.get_crop(0,y,0,1,image.width()-1,y,0,1),green,1,1,0,255,0);
      visu.draw_graph(image.get_crop(0,y,0,2,image.width()-1,y,0,2),blue,1,1,0,255,0).display(draw_disp);
      }
    }
  return 0;
}

Источник: http: // cimg. eu / reference / group__cimg__tutorial.html

Я заметил, что в документации говорится, что он поддерживает только jpg, если установлена ​​функция imageMagick, возможно, вы сделали что-то не так и неправильно установлены?

EDIT:

Это работает?

#include "CImg.h"
using namespace cimg_library;
int main() {
  CImg<unsigned char> img(640,400,1,3);  // Define a 640x400 color image with 8 bits per color component.
  img.fill(0);                           // Set pixel values to 0 (color : black)
  unsigned char purple[] = { 255,0,255 };        // Define a purple color
  img.draw_text(100,100,"Hello World",purple); // Draw a purple "Hello world" at coordinates (100,100).
  img.display("My first CImg code");             // Display the image in a display window.
  return 0;
}
0
ответ дан Darth Futuza 26 August 2018 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: