15#if defined (YARP_HAS_JPEG)
19#if defined (YARP_HAS_PNG)
23#if defined (YARP_HAS_ZLIB)
48#if defined (YARP_HAS_ZLIB)
52 bool SaveJPG(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize);
53 bool SavePGM(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize);
54 bool SavePPM(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize);
55#if defined (YARP_HAS_PNG)
58 bool SaveFloatRaw(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize);
59#if defined (YARP_HAS_ZLIB)
60 bool SaveFloatCompressed(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize);
77#if defined (YARP_HAS_JPEG)
105 for (
size_t y = 0; y <
j_height; y++)
116 for (
size_t y = 0; y <
j_height; y++)
118 for (
size_t x = 0; x <
j_width; x++)
120 unsigned char* address = img.getPixelAddress(x, y);
139#if defined (YARP_HAS_JPEG)
150#if defined (YARP_HAS_JPEG)
164#if defined (YARP_HAS_PNG)
231 for (
int y = 0; y < height; y++)
239 img.resize(width,height);
240 for (
int y = 0; y < height; y++)
243 for (
int x = 0; x < width; x++)
246 unsigned char* address = img.getPixelAddress(x,y);
254 for (
int y = 0; y < height; y++)
268#if defined (YARP_HAS_PNG)
279#if defined (YARP_HAS_PNG)
300 if (
fscanf(
fp,
"P%c\n", &ch) != 1 || (ch!=
'6'&&ch!=
'5'))
324 int n=
fscanf(
fp,
"%d%d%d", width, height, &maxval);
343 int width, height, color,
num;
363 tmp.resize(width,height);
365 const int w =
tmp.width() *
tmp.getPixelSize();
366 const int h =
tmp.height();
367 const int pad =
tmp.getRowSize();
368 unsigned char *dst =
tmp.getRawImage ();
371 for (
int i = 0; i < h; i++)
381 img.resize(width,height);
383 const int w = img.width() * img.getPixelSize();
384 const int h = img.height();
385 const int pad = img.getRowSize();
386 unsigned char *dst = img.getRawImage ();
389 for (
int i = 0; i < h; i++)
400#if defined (YARP_HAS_ZLIB)
427 unsigned char*
destbuff = dest.getRawImage();
488 size_t pad = dest.getRowSize();
490 unsigned char* dst = dest.getRawImage();
492 for (
size_t i = 0; i < h; i++)
504 int width, height, color,
num;
529 tmpImg.resize(width, height);
531 const int w =
tmpImg.width() * img.getPixelSize();
532 const int h =
tmpImg.height();
534 unsigned char *dst =
tmpImg.getRawImage ();
537 for (
int i = 0; i < h; i++)
551 int width, height, color,
num;
575 img.resize(width,height);
577 const int w = img.width() * img.getPixelSize();
578 const int h = img.height();
579 const int pad = img.getRowSize();
580 unsigned char *dst = img.getRawImage ();
583 for (
int i = 0; i < h; i++)
598#if defined (YARP_HAS_PNG)
604 yCError(
IMAGEFILE,
"[write_png_file] Cannot write to file a nullptr image");
608 if (filename ==
nullptr)
617 yCError(
IMAGEFILE,
"[write_png_file] File %s could not be opened for writing", filename);
664 for (
size_t y = 0; y < h; y++)
700bool SaveJPG(
char *src,
const char *filename,
size_t h,
size_t w,
size_t rowSize)
702#if defined (YARP_HAS_JPEG)
720 cinfo.image_width = w;
721 cinfo.image_height = h;
722 cinfo.input_components = 3;
723 cinfo.in_color_space =
JCS_RGB;
731 while (cinfo.next_scanline < cinfo.image_height)
747bool SavePGM(
char *src,
const char *filename,
size_t h,
size_t w,
size_t rowSize)
757 const int inc = rowSize;
759 fprintf(
fp,
"P5\n%zu %zu\n%d\n", w, h, 255);
760 for (
size_t i = 0; i < h; i++)
762 fwrite((
void *)src, 1, (
size_t)w,
fp);
773bool SavePPM(
char *src,
const char *filename,
size_t h,
size_t w,
size_t rowSize)
783 const int inc = rowSize;
785 fprintf(
fp,
"P6\n%zu %zu\n%d\n", w, h, 255);
786 for (
size_t i = 0; i < h; i++)
788 fwrite((
void *)src, 1, (
size_t)(w * 3),
fp);
799#if defined (YARP_HAS_ZLIB)
800bool SaveFloatCompressed(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize)
830 size_t dims[2] = { h,w };
841bool SaveFloatRaw(
char* src,
const char* filename,
size_t h,
size_t w,
size_t rowSize)
849 size_t dims[2] = { h,w };
865 return SaveJPG((
char*)img.getRawImage(), filename, img.height(), img.width(), img.getRowSize());
870#if defined (YARP_HAS_PNG)
880#if defined (YARP_HAS_PNG)
890 return SavePPM((
char*)img.getRawImage(),filename,img.height(),img.width(),img.getRowSize());
895 return SavePGM((
char*)img.getRawImage(), filename, img.height(), img.width(), img.getRowSize());
900 return SaveFloatRaw((
char*)img.getRawImage(), filename, img.height(), img.width(), img.getRowSize());
905#if defined (YARP_HAS_ZLIB)
906 return SaveFloatCompressed((
char*)img.getRawImage(), filename, img.height(), img.width(), img.getRowSize());
1079#if defined (YARP_HAS_ZLIB)
1224 return write(img,dest);
A mini-server for performing network communication in the background.
BufferedPort()
Constructor.
void write(bool forceStrict=false)
Write the current object being returned by BufferedPort::prepare.
Base class for storing images.
virtual int getPixelCode() const
Gets pixel type identifier.
#define yCError(component,...)
#define yCWarning(component,...)
#define YARP_LOG_COMPONENT(name,...)
An interface to the operating system, including Port based communication.
bool read(ImageOf< PixelRgb > &dest, const std::string &src, image_fileformat format=FORMAT_ANY)
@ FORMAT_NUMERIC_COMPRESSED
bool write(const ImageOf< PixelRgb > &src, const std::string &dest, image_fileformat format=FORMAT_PPM)