| 162 | } |
| 163 | |
| 164 | pag::ByteData* EncodeImageData(uint8_t* rgbaBytes, int width, int height, int rowBytes, |
| 165 | int quality) { |
| 166 | |
| 167 | pag::ByteData* bitmapBytes = nullptr; |
| 168 | uint8_t* output = nullptr; |
| 169 | auto size = WebPEncodeRGBA(rgbaBytes, width, height, rowBytes, quality, &output); |
| 170 | if (size > 0 && output != nullptr) { |
| 171 | auto bytes = new uint8_t[size]; |
| 172 | memcpy(bytes, output, size); |
| 173 | bitmapBytes = pag::ByteData::MakeAdopted(bytes, size).release(); |
| 174 | } |
| 175 | WebPFree(output); |
| 176 | |
| 177 | return bitmapBytes; |
| 178 | } |
| 179 | |
| 180 | void GetOpaqueRect(int& left, int& top, int& right, int& bottom, const uint8_t* data, int width, |
| 181 | int height, int stride) { |
no test coverage detected