equal
deleted
inserted
replaced
82 |
82 |
83 f = fopen(name, "wb"); |
83 f = fopen(name, "wb"); |
84 if (f == NULL) return false; |
84 if (f == NULL) return false; |
85 |
85 |
86 /* each scanline must be aligned on a 32bit boundary */ |
86 /* each scanline must be aligned on a 32bit boundary */ |
87 padw = ALIGN(w, 4); |
87 padw = Align(w, 4); |
88 |
88 |
89 if (pixelformat == 8) pal_size = sizeof(RgbQuad) * 256; |
89 if (pixelformat == 8) pal_size = sizeof(RgbQuad) * 256; |
90 |
90 |
91 /* setup the file header */ |
91 /* setup the file header */ |
92 bfh.type = TO_LE16('MB'); |
92 bfh.type = TO_LE16('MB'); |
121 if (fwrite(&bfh, sizeof(bfh), 1, f) != 1) return false; |
121 if (fwrite(&bfh, sizeof(bfh), 1, f) != 1) return false; |
122 if (fwrite(&bih, sizeof(bih), 1, f) != 1) return false; |
122 if (fwrite(&bih, sizeof(bih), 1, f) != 1) return false; |
123 if (pixelformat == 8) if (fwrite(rq, sizeof(rq), 1, f) != 1) return false; |
123 if (pixelformat == 8) if (fwrite(rq, sizeof(rq), 1, f) != 1) return false; |
124 |
124 |
125 /* use by default 64k temp memory */ |
125 /* use by default 64k temp memory */ |
126 maxlines = clamp(65536 / padw, 16, 128); |
126 maxlines = Clamp(65536 / padw, 16, 128); |
127 |
127 |
128 /* now generate the bitmap bits */ |
128 /* now generate the bitmap bits */ |
129 void *buff = MallocT<uint8>(padw * maxlines * bpp); // by default generate 128 lines at a time. |
129 void *buff = MallocT<uint8>(padw * maxlines * bpp); // by default generate 128 lines at a time. |
130 if (buff == NULL) { |
130 if (buff == NULL) { |
131 fclose(f); |
131 fclose(f); |
249 png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); |
249 png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); |
250 #endif |
250 #endif |
251 } |
251 } |
252 |
252 |
253 /* use by default 64k temp memory */ |
253 /* use by default 64k temp memory */ |
254 maxlines = clamp(65536 / w, 16, 128); |
254 maxlines = Clamp(65536 / w, 16, 128); |
255 |
255 |
256 /* now generate the bitmap bits */ |
256 /* now generate the bitmap bits */ |
257 void *buff = MallocT<uint8>(w * maxlines * bpp); // by default generate 128 lines at a time. |
257 void *buff = MallocT<uint8>(w * maxlines * bpp); // by default generate 128 lines at a time. |
258 if (buff == NULL) { |
258 if (buff == NULL) { |
259 png_destroy_write_struct(&png_ptr, &info_ptr); |
259 png_destroy_write_struct(&png_ptr, &info_ptr); |
349 fclose(f); |
349 fclose(f); |
350 return false; |
350 return false; |
351 } |
351 } |
352 |
352 |
353 /* use by default 64k temp memory */ |
353 /* use by default 64k temp memory */ |
354 maxlines = clamp(65536 / w, 16, 128); |
354 maxlines = Clamp(65536 / w, 16, 128); |
355 |
355 |
356 /* now generate the bitmap bits */ |
356 /* now generate the bitmap bits */ |
357 uint8 *buff = MallocT<uint8>(w * maxlines); // by default generate 128 lines at a time. |
357 uint8 *buff = MallocT<uint8>(w * maxlines); // by default generate 128 lines at a time. |
358 if (buff == NULL) { |
358 if (buff == NULL) { |
359 fclose(f); |
359 fclose(f); |