Introduction
Introduction Statistics Contact Development Disclaimer Help
Remove more png cruft from code - farbfeld - suckless image format with convers…
git clone git://git.suckless.org/farbfeld
Log
Files
Refs
README
LICENSE
---
commit 2ea5274584f8f38a8bd49271ad7aebed5d3afec3
parent 93204899d4a27d2ecefe7fe7f0902f94cab72268
Author: FRIGN <[email protected]>
Date: Tue, 19 Jan 2016 23:17:27 +0100
Remove more png cruft from code
No need for these shitty png-types.
Diffstat:
M ff2png.c | 63 +++++++++++++++--------------…
M png2ff.c | 80 ++++++++++++++++-------------…
2 files changed, 72 insertions(+), 71 deletions(-)
---
diff --git a/ff2png.c b/ff2png.c
@@ -23,7 +23,7 @@ static cmsCIExyYTRIPLE primaries = {
};
void
-pngerr(png_structp png_struct_p, png_const_charp msg)
+pngerr(png_structp pngs, const char *msg)
{
fprintf(stderr, "%s: libpng: %s\n", argv0, msg);
exit(1);
@@ -33,14 +33,13 @@ int
main(int argc, char *argv[])
{
cmsContext icc_context;
- cmsHPROFILE out_profile;
+ cmsHPROFILE out_prof;
cmsMLU *mlu1, *mlu2;
- cmsToneCurve *gamma18, *out_curves[3];
- png_structp png_struct_p;
- png_infop png_info_p;
- png_size_t png_row_len, j;
- png_uint_32 width, height, i;
- uint32_t icclen;
+ cmsToneCurve *gamma18, *out_curve[3];
+ png_structp pngs;
+ png_infop pngi;
+ size_t png_row_len, j;
+ uint32_t icclen, width, height, i;
uint16_t tmp16, *png_row;
uint8_t hdr[16], *icc;
@@ -68,42 +67,42 @@ main(int argc, char *argv[])
goto lcmserr;
if (!(gamma18 = cmsBuildGamma(icc_context, 1.8)))
goto lcmserr;
- out_curves[0] = out_curves[1] = out_curves[2] = gamma18;
- if (!(out_profile = cmsCreateRGBProfileTHR(icc_context, cmsD50_xyY(),
- &primaries, out_curves)))
+ out_curve[0] = out_curve[1] = out_curve[2] = gamma18;
+ if (!(out_prof = cmsCreateRGBProfileTHR(icc_context, cmsD50_xyY(),
+ &primaries, out_curve)))
goto lcmserr;
- cmsSetHeaderFlags(out_profile, cmsEmbeddedProfileTrue | cmsUseAnywhere…
- cmsSetHeaderRenderingIntent(out_profile, INTENT_RELATIVE_COLORIMETRIC);
- cmsSetDeviceClass(out_profile, cmsSigColorSpaceClass);
+ cmsSetHeaderFlags(out_prof, cmsEmbeddedProfileTrue | cmsUseAnywhere);
+ cmsSetHeaderRenderingIntent(out_prof, INTENT_RELATIVE_COLORIMETRIC);
+ cmsSetDeviceClass(out_prof, cmsSigColorSpaceClass);
if (!(mlu1 = cmsMLUalloc(NULL, 1)) || !(mlu2 = cmsMLUalloc(NULL, 1)))
goto lcmserr;
cmsMLUsetASCII(mlu1, "en", "US", "Public Domain");
- cmsWriteTag(out_profile, cmsSigCopyrightTag, mlu1);
+ cmsWriteTag(out_prof, cmsSigCopyrightTag, mlu1);
cmsMLUsetASCII(mlu2, "en", "US", "ProPhoto RGB");
- cmsWriteTag(out_profile, cmsSigProfileDescriptionTag, mlu2);
- cmsWriteTag(out_profile, cmsSigDeviceModelDescTag, mlu2);
- cmsSaveProfileToMem(out_profile, NULL, &icclen);
+ cmsWriteTag(out_prof, cmsSigProfileDescriptionTag, mlu2);
+ cmsWriteTag(out_prof, cmsSigDeviceModelDescTag, mlu2);
+ cmsSaveProfileToMem(out_prof, NULL, &icclen);
if (!(icc = malloc(icclen))) {
fprintf(stderr, "%s: malloc: out of memory\n", argv0);
return 1;
}
- cmsSaveProfileToMem(out_profile, icc, &icclen);
+ cmsSaveProfileToMem(out_prof, icc, &icclen);
/* load png */
- png_struct_p = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
- pngerr, NULL);
- png_info_p = png_create_info_struct(png_struct_p);
+ pngs = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, pngerr,
+ NULL);
+ pngi = png_create_info_struct(pngs);
- if (!png_struct_p || !png_info_p) {
+ if (!pngs || !pngi) {
fprintf(stderr, "%s: failed to initialize libpng\n", argv0);
return 1;
}
- png_init_io(png_struct_p, stdout);
- png_set_IHDR(png_struct_p, png_info_p, width, height, 16,
- PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE,
- PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
- png_set_iCCP(png_struct_p, png_info_p, "ProPhoto RGB", 0, icc, icclen);
- png_write_info(png_struct_p, png_info_p);
+ png_init_io(pngs, stdout);
+ png_set_IHDR(pngs, pngi, width, height, 16, PNG_COLOR_TYPE_RGB_ALPHA,
+ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE,
+ PNG_FILTER_TYPE_BASE);
+ png_set_iCCP(pngs, pngi, "ProPhoto RGB", 0, icc, icclen);
+ png_write_info(pngs, pngi);
/* write rows */
png_row_len = strlen("RGBA") * width * sizeof(uint16_t);
@@ -119,10 +118,10 @@ main(int argc, char *argv[])
}
png_row[j] = tmp16;
}
- png_write_row(png_struct_p, (uint8_t *)png_row);
+ png_write_row(pngs, (uint8_t *)png_row);
}
- png_write_end(png_struct_p, NULL);
- png_destroy_write_struct(&png_struct_p, NULL);
+ png_write_end(pngs, NULL);
+ png_destroy_write_struct(&pngs, NULL);
return 0;
lcmserr:
diff --git a/png2ff.c b/png2ff.c
@@ -21,7 +21,7 @@ static cmsCIExyYTRIPLE primaries = {
};
void
-pngerr(png_structp png_struct_p, png_const_charp msg)
+pngerr(png_structp pngs, const char *msg)
{
fprintf(stderr, "%s: libpng: %s\n", argv0, msg);
exit(1);
@@ -30,16 +30,16 @@ pngerr(png_structp png_struct_p, png_const_charp msg)
int
main(int argc, char *argv[])
{
- cmsHPROFILE in_profile, out_profile;
- cmsHTRANSFORM transform;
+ cmsHPROFILE in_prof, out_prof;
+ cmsHTRANSFORM trans;
cmsToneCurve *gamma18, *out_curves[3];
- png_structp png_struct_p;
- png_infop png_info_p;
- png_bytep *png_row_p, icc_data;
- png_charp icc_name;
+ png_structp pngs;
+ png_infop pngi;
+ int icc_compression;
uint32_t width, height, icc_len, outrowlen, tmp32, r, i;
uint16_t *inrow, *outrow;
- int icc_compression;
+ uint8_t **png_row_p, *icc_data;
+ char *icc_name;
argv0 = argv[0], argc--, argv++;
@@ -49,46 +49,46 @@ main(int argc, char *argv[])
}
/* load png */
- png_struct_p = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL,
- pngerr, NULL);
- png_info_p = png_create_info_struct(png_struct_p);
+ pngs = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, pngerr,
+ NULL);
+ pngi = png_create_info_struct(pngs);
- if (!png_struct_p || !png_info_p) {
+ if (!pngs || !pngi) {
fprintf(stderr, "%s: failed to initialize libpng\n", argv0);
return 1;
}
- png_init_io(png_struct_p, stdin);
- if (png_get_valid(png_struct_p, png_info_p, PNG_INFO_tRNS))
- png_set_tRNS_to_alpha(png_struct_p);
- png_set_add_alpha(png_struct_p, 255*257, PNG_FILLER_AFTER);
- png_set_expand_gray_1_2_4_to_8(png_struct_p);
- png_set_gray_to_rgb(png_struct_p);
- png_set_packing(png_struct_p);
- png_read_png(png_struct_p, png_info_p, PNG_TRANSFORM_PACKING |
+ png_init_io(pngs, stdin);
+ if (png_get_valid(pngs, pngi, PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha(pngs);
+ png_set_add_alpha(pngs, 255*257, PNG_FILLER_AFTER);
+ png_set_expand_gray_1_2_4_to_8(pngs);
+ png_set_gray_to_rgb(pngs);
+ png_set_packing(pngs);
+ png_read_png(pngs, pngi, PNG_TRANSFORM_PACKING |
PNG_TRANSFORM_EXPAND, NULL);
- width = png_get_image_width(png_struct_p, png_info_p);
- height = png_get_image_height(png_struct_p, png_info_p);
- png_row_p = png_get_rows(png_struct_p, png_info_p);
+ width = png_get_image_width(pngs, pngi);
+ height = png_get_image_height(pngs, pngi);
+ png_row_p = png_get_rows(pngs, pngi);
/* icc profile (output ProPhoto RGB) */
- if (png_get_valid(png_struct_p, png_info_p, PNG_INFO_iCCP)) {
- png_get_iCCP(png_struct_p, png_info_p, &icc_name,
+ if (png_get_valid(pngs, pngi, PNG_INFO_iCCP)) {
+ png_get_iCCP(pngs, pngi, &icc_name,
&icc_compression, &icc_data, &icc_len);
- if (!(in_profile = cmsOpenProfileFromMem(icc_data,
+ if (!(in_prof = cmsOpenProfileFromMem(icc_data,
icc_len)))
goto lcmserr;
} else {
- if (!(in_profile = cmsCreate_sRGBProfile()))
+ if (!(in_prof = cmsCreate_sRGBProfile()))
goto lcmserr;
}
if (!(gamma18 = cmsBuildGamma(NULL, 1.8)))
goto lcmserr;
out_curves[0] = out_curves[1] = out_curves[2] = gamma18;
- if (!(out_profile = cmsCreateRGBProfile(cmsD50_xyY(), &primaries,
+ if (!(out_prof = cmsCreateRGBProfile(cmsD50_xyY(), &primaries,
out_curves)))
goto lcmserr;
- /* allocate row buffer */
+ /* allocate output row buffer */
outrowlen = width * strlen("RGBA");
if (!(outrow = malloc(outrowlen * sizeof(uint16_t)))) {
fprintf(stderr, "%s: malloc: out of memory\n", argv0);
@@ -105,14 +105,15 @@ main(int argc, char *argv[])
goto writerr;
/* write data */
- switch(png_get_bit_depth(png_struct_p, png_info_p)) {
+ switch(png_get_bit_depth(pngs, pngi)) {
case 8:
- if (!(transform = cmsCreateTransform(in_profile,
- TYPE_RGBA_8, out_profile, TYPE_RGBA_16,
- INTENT_RELATIVE_COLORIMETRIC, 0)))
+ if (!(trans = cmsCreateTransform(in_prof, TYPE_RGBA_8,
+ out_prof, TYPE_RGBA_16,
+ INTENT_RELATIVE_COLORIMETRIC,
+ 0)))
goto lcmserr;
for (r = 0; r < height; ++r) {
- cmsDoTransform(transform, png_row_p[r], outrow, width);
+ cmsDoTransform(trans, png_row_p[r], outrow, width);
for (i = 0; i < outrowlen; i++) {
/* re-add alpha */
if (i >= 3 && (i - 3) % 4 == 0)
@@ -126,9 +127,10 @@ main(int argc, char *argv[])
}
break;
case 16:
- if (!(transform = cmsCreateTransform(in_profile,
- TYPE_RGBA_16, out_profile, TYPE_RGBA_16,
- INTENT_RELATIVE_COLORIMETRIC, 0)))
+ if (!(trans = cmsCreateTransform(in_prof, TYPE_RGBA_16,
+ out_prof, TYPE_RGBA_16,
+ INTENT_RELATIVE_COLORIMETRIC,
+ 0)))
goto lcmserr;
for (r = 0; r < height; ++r) {
inrow = (uint16_t *)png_row_p[r];
@@ -136,7 +138,7 @@ main(int argc, char *argv[])
/* swap endianness to LE */
inrow[i] = ntohs(inrow[i]);
}
- cmsDoTransform(transform, png_row_p[r], outrow, width);
+ cmsDoTransform(trans, png_row_p[r], outrow, width);
for (i = 0; i < outrowlen; ++i) {
/* re-add alpha */
if (i >= 3 && (i - 3) % 4 == 0)
@@ -154,7 +156,7 @@ main(int argc, char *argv[])
return 1;
}
- png_destroy_read_struct(&png_struct_p, &png_info_p, NULL);
+ png_destroy_read_struct(&pngs, &pngi, NULL);
return 0;
writerr:
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.