summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-05-09 15:15:59 +0200
committerkdx <kikoodx@paranoici.org>2023-05-09 15:15:59 +0200
commit0c4fc529678573dedbef740c1ccb6820d1764d37 (patch)
treef79c071ce4658634671ad44ef9880fc57be26992
parent1e78a3dbf0cb312d0ba668e25c485b81a37efc55 (diff)
downloadpximg-0c4fc529678573dedbef740c1ccb6820d1764d37.tar.gz
handle alpha
-rw-r--r--pximg.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pximg.c b/pximg.c
index 2eec9b8..c5afbc4 100644
--- a/pximg.c
+++ b/pximg.c
@@ -89,13 +89,13 @@ indexed(char **argv)
/* read image */
int img_w, img_h, img_col_chans;
uint8_t *const img_data =
- stbi_load(argv[2], &img_w, &img_h, &img_col_chans, 3);
+ stbi_load(argv[2], &img_w, &img_h, &img_col_chans, 4);
if (img_data == NULL) {
fprintf(stderr, "error: failed to load image\n");
return 1;
}
- if (pal_col_chans != 3) {
+ if (pal_col_chans != 4) {
fprintf(stderr, "error: image isn't RBG\n");
stbi_image_free(img_data);
return 1;
@@ -111,10 +111,12 @@ indexed(char **argv)
for (int i = 0; i < img_w * img_h; i++) {
int col = -1;
for (int k = 0; k < pal_size; k++)
- if (memcmp(pal + k * 3, img_data + i * 3, 3) == 0) {
+ if (memcmp(pal + k * 3, img_data + i * 4, 3) == 0) {
col = k;
break;
}
+ if (img_data[i * 4 + 3] == 0)
+ col = 0;
if (col == -1) {
fprintf(stderr,
"color at pixel %d:%d not found in palette\n",