is possiable to support the dataurls option on Windows use jpeg jpeg_mem_dest api ?
simple code like this:
void writeImgMemory(SplashColorPtr data, int width, int height, double hDPI, double vDPI, unsigned char **mem ,unsigned long *mem_size)
{
int rowSize;
int rowPad = 4;
rowSize = width * 3;
if (rowSize > 0) {
rowSize += rowPad - 1;
rowSize -= rowSize % rowPad;
}
struct jpeg_compress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_compress(&cinfo);
cinfo.in_color_space = JCS_RGB;
jpeg_set_defaults(&cinfo);
jpeg_mem_dest(&cinfo, mem, mem_size);
cinfo.image_width = width;
cinfo.image_height = height;
cinfo.density_unit = 1; // dots per inch
cinfo.X_density = static_cast<UINT16>(hDPI);
cinfo.Y_density = static_cast<UINT16>(vDPI);
cinfo.input_components = 3;
jpeg_set_quality(&cinfo, 100, TRUE);
cinfo.optimize_coding = false;//static_cast<boolean>(priv->optimize);
jpeg_start_compress(&cinfo, TRUE);
SplashColorPtr row;
unsigned char **row_pointers = new unsigned char *[height];
row = data;
for (int y = 0; y < height; ++y) {
row_pointers[y] = row;
row += rowSize;
}
jpeg_write_scanlines(&cinfo, row_pointers, height);
delete[] row_pointers;
jpeg_finish_compress(&cinfo);
jpeg_destroy_compress(&cinfo);
}