c++,jpeg,libjpeg,libjpeg-turbo
No libJPEG is only a loading/saving library. It allows the conversion of JPEG to other more workable formats and back. You will need some sort of image processing library (e.g. OpenCV) or high-level graphics library (e.g. DirectX, SFML). There are a lot of image libraries that implement writing of text...
You allocate space for the image buffer in read_JPEG_file and store a pointer to it in that function's image_buffer argument, but that value is lost when the function returns. The image_buffer variable in main is a different variable and isn't changed by the call to read_JPEG_file. Since the image_buffer variable...
image,scaling,decoding,libpng,libjpeg-turbo
Libpng does not support downscaling while decoding. It is possible to achieve a power-of-two downscaling by ignoring the later passes of an interlaced PNG, however (read only the first pass for 1/8 scale, the first 3 passes for 1/4 scale, and the first 5 passes for 1/2 scale), but this...
colors,jpeg,rgb,grayscale,libjpeg-turbo
You are getting errors from the RGB->YCbCr conversion. That is impossible to avoid in the large because there is not a 1:1 mapping between the two color spaces.