mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-23 15:20:33 +03:00
Made loops compatible with old C standart
This commit is contained in:
parent
1ce95d1b9f
commit
affaa62ec4
|
@ -72,12 +72,12 @@ typedef struct {
|
||||||
} Color;
|
} Color;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
selection_sort(Color arr[], uint32_t n) {
|
selection_sort(Color arr[], UINT32 n) {
|
||||||
uint32_t min_idx;
|
UINT32 min_idx, i, j;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < n - 1; i++) {
|
for (i = 0; i < n - 1; i++) {
|
||||||
min_idx = i;
|
min_idx = i;
|
||||||
for (uint32_t j = i + 1; j < n; j++)
|
for (j = i + 1; j < n; j++)
|
||||||
if (arr[j].frequency < arr[min_idx].frequency)
|
if (arr[j].frequency < arr[min_idx].frequency)
|
||||||
min_idx = j;
|
min_idx = j;
|
||||||
SWAP(Color, arr[min_idx], arr[i]);
|
SWAP(Color, arr[min_idx], arr[i]);
|
||||||
|
@ -91,9 +91,10 @@ pick_2_major_colors(
|
||||||
UINT16 color_count,
|
UINT16 color_count,
|
||||||
UINT16 *color0,
|
UINT16 *color0,
|
||||||
UINT16 *color1) {
|
UINT16 *color1) {
|
||||||
|
UINT32 i;
|
||||||
Color colors[16];
|
Color colors[16];
|
||||||
memset(colors, 0, sizeof(colors));
|
memset(colors, 0, sizeof(colors));
|
||||||
for (int i = 0; i < color_count; ++i) {
|
for (i = 0; i < color_count; ++i) {
|
||||||
colors[i].value = unique_colors[i];
|
colors[i].value = unique_colors[i];
|
||||||
colors[i].frequency = color_freq[i];
|
colors[i].frequency = color_freq[i];
|
||||||
}
|
}
|
||||||
|
@ -110,8 +111,9 @@ static UINT8
|
||||||
get_closest_color_index(const UINT16 *colors, UINT16 color) {
|
get_closest_color_index(const UINT16 *colors, UINT16 color) {
|
||||||
UINT16 color_error = 0xFFF8;
|
UINT16 color_error = 0xFFF8;
|
||||||
UINT16 lowest_id = 0;
|
UINT16 lowest_id = 0;
|
||||||
|
UINT32 color_id;
|
||||||
|
|
||||||
for (int color_id = 0; color_id < 4; color_id++) {
|
for (color_id = 0; color_id < 4; color_id++) {
|
||||||
UINT8 error = rgb565_diff(colors[color_id], color);
|
UINT8 error = rgb565_diff(colors[color_id], color);
|
||||||
if (error == 0) {
|
if (error == 0) {
|
||||||
return color_id;
|
return color_id;
|
||||||
|
@ -128,6 +130,7 @@ int
|
||||||
encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
||||||
bc1_color *blocks = (bc1_color *)buf;
|
bc1_color *blocks = (bc1_color *)buf;
|
||||||
UINT8 no_alpha = 0;
|
UINT8 no_alpha = 0;
|
||||||
|
INT32 block_index;
|
||||||
if (strchr(im->mode, 'A') == NULL)
|
if (strchr(im->mode, 'A') == NULL)
|
||||||
no_alpha = 1;
|
no_alpha = 1;
|
||||||
UINT32 block_count = (im->xsize * im->ysize) / 16;
|
UINT32 block_count = (im->xsize * im->ysize) / 16;
|
||||||
|
@ -137,7 +140,7 @@ encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(buf, 0, block_count * sizeof(bc1_color));
|
memset(buf, 0, block_count * sizeof(bc1_color));
|
||||||
for (int block_index = 0; block_index < block_count; block_index++) {
|
for (block_index = 0; block_index < block_count; block_index++) {
|
||||||
state->x = (block_index % (im->xsize / 4));
|
state->x = (block_index % (im->xsize / 4));
|
||||||
state->y = (block_index / (im->xsize / 4));
|
state->y = (block_index / (im->xsize / 4));
|
||||||
UINT16 unique_count = 0;
|
UINT16 unique_count = 0;
|
||||||
|
@ -150,11 +153,11 @@ encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
||||||
memset(unique_colors, 0, sizeof(unique_colors));
|
memset(unique_colors, 0, sizeof(unique_colors));
|
||||||
memset(color_frequency, 0, sizeof(color_frequency));
|
memset(color_frequency, 0, sizeof(color_frequency));
|
||||||
memset(opaque, 0, sizeof(opaque));
|
memset(opaque, 0, sizeof(opaque));
|
||||||
|
UINT32 by, bx, x, y;
|
||||||
for (int by = 0; by < 4; ++by) {
|
for (by = 0; by < 4; ++by) {
|
||||||
for (int bx = 0; bx < 4; ++bx) {
|
for (bx = 0; bx < 4; ++bx) {
|
||||||
int x = (state->x * 4) + bx;
|
x = (state->x * 4) + bx;
|
||||||
int y = (state->y * 4) + by;
|
y = (state->y * 4) + by;
|
||||||
UINT8 r = im->image[y][x * im->pixelsize + 2];
|
UINT8 r = im->image[y][x * im->pixelsize + 2];
|
||||||
UINT8 g = im->image[y][x * im->pixelsize + 1];
|
UINT8 g = im->image[y][x * im->pixelsize + 1];
|
||||||
UINT8 b = im->image[y][x * im->pixelsize + 0];
|
UINT8 b = im->image[y][x * im->pixelsize + 0];
|
||||||
|
@ -163,8 +166,9 @@ encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
||||||
opaque[bx + by * 4] = a >= 127;
|
opaque[bx + by * 4] = a >= 127;
|
||||||
all_colors[bx + by * 4] = color;
|
all_colors[bx + by * 4] = color;
|
||||||
|
|
||||||
int new_color = 1;
|
UINT8 new_color = 1;
|
||||||
for (UINT16 color_id = 0; color_id < unique_count; color_id++) {
|
UINT16 color_id = 1;
|
||||||
|
for (color_id = 0; color_id < unique_count; color_id++) {
|
||||||
if (unique_colors[color_id] == color) {
|
if (unique_colors[color_id] == color) {
|
||||||
color_frequency[color_id]++;
|
color_frequency[color_id]++;
|
||||||
new_color = 0;
|
new_color = 0;
|
||||||
|
@ -196,7 +200,8 @@ encode_bc1(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) {
|
||||||
|
|
||||||
block->c0 = c0;
|
block->c0 = c0;
|
||||||
block->c1 = c1;
|
block->c1 = c1;
|
||||||
for (UINT32 color_id = 0; color_id < 16; ++color_id) {
|
UINT32 color_id;
|
||||||
|
for (color_id = 0; color_id < 16; ++color_id) {
|
||||||
UINT8 bc_color_id;
|
UINT8 bc_color_id;
|
||||||
if (opaque[color_id] || no_alpha)
|
if (opaque[color_id] || no_alpha)
|
||||||
bc_color_id = get_closest_color_index(palette, all_colors[color_id]);
|
bc_color_id = get_closest_color_index(palette, all_colors[color_id]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user