Philipp Schrader | 790cb54 | 2023-07-05 21:06:52 -0700 | [diff] [blame] | 1 | #include "y2019/image_streamer/flip_image.h" |
Tyler Chatow | e024145 | 2019-03-08 21:07:50 -0800 | [diff] [blame] | 2 | |
Brian Silverman | 4c7235a | 2021-11-17 19:04:37 -0800 | [diff] [blame] | 3 | #ifdef __clang__ |
| 4 | // CImg has undefined behavior that Clang warns about. Just suppress the |
| 5 | // warnings, somebody should evaluate these more carefully if this code is used |
| 6 | // again. |
| 7 | #pragma clang diagnostic ignored "-Wvarargs" |
| 8 | #pragma clang diagnostic ignored "-Wnull-pointer-arithmetic" |
| 9 | #pragma clang diagnostic ignored "-Wchar-subscripts" |
| 10 | #pragma clang diagnostic ignored "-Wtautological-unsigned-char-zero-compare" |
Adam Snaider | 13d48d9 | 2023-08-03 12:20:15 -0700 | [diff] [blame] | 11 | #pragma clang diagnostic ignored "-Wcast-qual" |
| 12 | #pragma clang diagnostic ignored "-Wcast-align" |
| 13 | #pragma clang diagnostic ignored "-Wformat-nonliteral" |
Brian Silverman | 4c7235a | 2021-11-17 19:04:37 -0800 | [diff] [blame] | 14 | #endif |
| 15 | |
Tyler Chatow | e024145 | 2019-03-08 21:07:50 -0800 | [diff] [blame] | 16 | #define cimg_display 0 |
| 17 | #define cimg_use_jpeg |
| 18 | #define cimg_plugin "plugins/jpeg_buffer.h" |
| 19 | #include "third_party/cimg/CImg.h" |
| 20 | |
| 21 | void flip_image(const char *input, const int input_size, JOCTET *buffer, |
Austin Schuh | 9c03a53 | 2019-03-17 18:14:45 -0700 | [diff] [blame] | 22 | unsigned int *buffer_size, bool flip) { |
Tyler Chatow | e024145 | 2019-03-08 21:07:50 -0800 | [diff] [blame] | 23 | ::cimg_library::CImg<unsigned char> image; |
| 24 | image.load_jpeg_buffer((JOCTET *)(input), input_size); |
Austin Schuh | 9c03a53 | 2019-03-17 18:14:45 -0700 | [diff] [blame] | 25 | if (flip) { |
Tyler Chatow | d3384c2 | 2019-04-04 16:38:32 -0700 | [diff] [blame] | 26 | image.rotate(90); |
| 27 | } else { |
| 28 | image.rotate(270); |
Austin Schuh | 9c03a53 | 2019-03-17 18:14:45 -0700 | [diff] [blame] | 29 | } |
Tyler Chatow | e024145 | 2019-03-08 21:07:50 -0800 | [diff] [blame] | 30 | |
| 31 | image.save_jpeg_buffer(buffer, *buffer_size, 80); |
| 32 | } |