소스 검색

Add bgra swap in _encode_image

luboslenco 1 일 전
부모
커밋
a37630daa3
1개의 변경된 파일8개의 추가작업 그리고 0개의 파일을 삭제
  1. 8 0
      base/sources/iron.h

+ 8 - 0
base/sources/iron.h

@@ -1697,6 +1697,14 @@ void _encode_image_func(void *context, void *data, int size) {
 }
 
 buffer_t *_encode_image(buffer_t *bytes, i32 w, i32 h, i32 format, i32 quality) {
+	#ifdef IRON_BGRA
+	unsigned char *pixels = bytes->buffer;
+	for (int i = 0; i < w * h; ++i) {
+		unsigned char c = pixels[i * 4];
+		pixels[i * 4    ] = pixels[i * 4 + 2];
+		pixels[i * 4 + 2] = c;
+	}
+	#endif
 	_encode_data = (unsigned char *)malloc(w * h * 4);
 	_encode_size = 0;
 	format == 0 ?