Lines Matching defs:img_n
823 int img_n, img_out_n;
966 // generic converter from built-in img_n to req_comp
980 static unsigned char *convert_format(unsigned char *data, int img_n, int req_comp, uint x, uint y)
985 if (req_comp == img_n) return data;
995 unsigned char *src = data + j * x * img_n ;
1000 // convert source image with img_n components to one with req_comp components;
1002 switch (COMBO(img_n, req_comp)) {
1659 if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s.img_n) return e("bad SOS component count","Corrupt JPEG");
1664 for (which = 0; which < z->s.img_n; ++which)
1667 if (which == z->s.img_n) return 0;
1689 s->img_n = c;
1695 if (Lf != 8+3*s->img_n) return e("bad SOF len","Corrupt JPEG");
1697 for (i=0; i < s->img_n; ++i) {
1710 if ((1 << 30) / s->img_x / s->img_n < s->img_y) return e("too large", "Image too large to decode");
1712 for (i=0; i < s->img_n; ++i) {
1725 for (i=0; i < s->img_n; ++i) {
1944 for (i=0; i < j->s.img_n; ++i) {
1971 z->s.img_n = 0;
1977 n = req_comp ? req_comp : z->s.img_n;
1979 if (z->s.img_n == 3 && n < 3)
1982 decode_n = z->s.img_n;
2038 if (z->s.img_n == 3) {
2061 if (comp) *comp = z->s.img_n; // report original components, not output
2107 if (comp) *comp = j->s.img_n;
2713 int img_n = s->img_n; // copy it into a local for later
2714 assert(out_n == s->img_n || out_n == s->img_n+1);
2720 if (raw_len != (img_n * x + 1) * y) return e("not enough pixels","Corrupt PNG");
2722 if (raw_len < (img_n * x + 1) * y) return e("not enough pixels","Corrupt PNG");
2733 for (k=0; k < img_n; ++k) {
2744 if (img_n != out_n) cur[img_n] = 255;
2745 raw += img_n;
2749 if (img_n == out_n) {
2752 for (i=x-1; i >= 1; --i, raw+=img_n,cur+=img_n,prior+=img_n) \
2753 for (k=0; k < img_n; ++k)
2757 CASE(F_sub) cur[k] = raw[k] + cur[k-img_n];
2761 CASE(F_avg) cur[k] = raw[k] + ((prior[k] + cur[k-img_n])>>1);
2763 CASE(F_paeth) cur[k] = (uint8) (raw[k] + paeth(cur[k-img_n],prior[k],prior[k-img_n]));
2765 CASE(F_avg_first) cur[k] = raw[k] + (cur[k-img_n] >> 1);
2767 CASE(F_paeth_first) cur[k] = (uint8) (raw[k] + paeth(cur[k-img_n],0,0));
2772 assert(img_n+1 == out_n);
2775 for (i=x-1; i >= 1; --i, cur[img_n]=255,raw+=img_n,cur+=out_n,prior+=out_n) \
2776 for (k=0; k < img_n; ++k)
2990 s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0);
2991 if ((1 << 30) / s->img_x / s->img_n < s->img_y) return e("too large", "Image too large to decode");
2995 // img_n is # components to decompress/filter.
2996 s->img_n = 1;
3021 if (scan == SCAN_header) { s->img_n = 4; return 1; }
3028 if (!(s->img_n & 1)) return e("tRNS with alpha","Corrupt PNG");
3029 if (c.length != (uint32) s->img_n*2) return e("bad tRNS len","Corrupt PNG");
3031 for (k=0; k < s->img_n; ++k)
3040 if (scan == SCAN_header) { s->img_n = pal_img_n; return 1; }
3062 if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans)
3063 s->img_out_n = s->img_n+1;
3065 s->img_out_n = s->img_n;
3073 s->img_n = pal_img_n; // record the actual colors we had
3122 if (n) *n = p->s.img_n;
3182 if (comp) *comp = p->s.img_n;
3373 s->img_n = ma ? 4 : 3;
3377 target = s->img_n; // if they want monochrome, we'll post-convert