16#ifdef PNG_WRITE_SUPPORTED
17#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
19#ifdef PNG_WRITE_PACK_SUPPORTED
32 switch ((
int)bit_depth)
46 for (
i = 0;
i < row_width;
i++)
84 for (
i = 0;
i < row_width;
i++)
124 for (
i = 0;
i < row_width;
i++)
128 value = (png_byte)(*
sp & 0x0f);
155 row_info->
bit_depth = (png_byte)bit_depth;
163#ifdef PNG_WRITE_SHIFT_SUPPORTED
179 int shift_start[4], shift_dec[4];
180 unsigned int channels = 0;
184 shift_start[channels] = row_info->
bit_depth - bit_depth->
red;
185 shift_dec[channels] = bit_depth->
red;
189 shift_dec[channels] = bit_depth->
green;
192 shift_start[channels] = row_info->
bit_depth - bit_depth->
blue;
193 shift_dec[channels] = bit_depth->
blue;
199 shift_start[channels] = row_info->
bit_depth - bit_depth->
gray;
200 shift_dec[channels] = bit_depth->
gray;
207 shift_dec[channels] = bit_depth->
alpha;
217 size_t row_bytes = row_info->
rowbytes;
228 for (
i = 0;
i < row_bytes;
i++, bp++)
236 for (
j = shift_start[0];
j > -shift_dec[0];
j -= shift_dec[0])
245 *bp = (png_byte)(
out & 0xff);
255 for (
i = 0;
i < istop;
i++, bp++)
257 unsigned int c =
i%channels;
264 for (
j = shift_start[
c];
j > -shift_dec[
c];
j -= shift_dec[
c])
273 *bp = (png_byte)(
out & 0xff);
283 for (bp = row,
i = 0;
i < istop;
i++)
285 unsigned int c =
i%channels;
292 for (
j = shift_start[
c];
j > -shift_dec[
c];
j -= shift_dec[
c])
300 *bp++ = (png_byte)((
value >> 8) & 0xff);
301 *bp++ = (png_byte)(
value & 0xff);
308#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
312 png_debug(1,
"in png_do_write_swap_alpha");
324 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
334#ifdef PNG_WRITE_16BIT_SUPPORTED
342 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
369 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
377#ifdef PNG_WRITE_16BIT_SUPPORTED
385 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
402#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
406 png_debug(1,
"in png_do_write_invert_alpha");
418 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
426 *
dp = (png_byte)(255 - *(
sp++));
434#ifdef PNG_WRITE_16BIT_SUPPORTED
442 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
453 *(
dp++) = (png_byte)(255 - *(
sp++));
454 *
dp = (png_byte)(255 - *(
sp++));
473 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
476 *(
dp++) = (png_byte)(255 - *(
sp++));
480#ifdef PNG_WRITE_16BIT_SUPPORTED
488 for (
i = 0,
sp =
dp = row;
i < row_width;
i++)
495 *(
dp++) = (png_byte)(255 - *(
sp++));
496 *
dp = (png_byte)(255 - *(
sp++));
515 png_debug(1,
"in png_do_write_transformations");
520#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
523 (*(
png_ptr->write_user_transform_fn))
536#ifdef PNG_WRITE_FILLER_SUPPORTED
542#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
547#ifdef PNG_WRITE_PACK_SUPPORTED
553#ifdef PNG_WRITE_SWAP_SUPPORTED
554# ifdef PNG_16BIT_SUPPORTED
560#ifdef PNG_WRITE_SHIFT_SUPPORTED
566#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
571#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
576#ifdef PNG_WRITE_BGR_SUPPORTED
581#ifdef PNG_WRITE_INVERT_SUPPORTED
int dp
Definition Spc_Cpu.h:149
uint8_t sp
Definition Spc_Cpu.h:145
static const unsigned long mask[]
Definition bitwise.c:31
register unsigned j
Definition inflate.c:1576
unsigned v[N_MAX]
Definition inflate.c:1584
register unsigned i
Definition inflate.c:1575
static PuglViewHint int value
Definition pugl.h:1708
#define png_get_uint_16(buf)
#define PNG_ROWBYTES(pixel_bits, width)
#define PNG_USER_TRANSFORM
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_COLOR_TYPE_GRAY_ALPHA
#define png_debug(a, b)
Definition juce_PNGLoader.cpp:277
#define PNG_COLOR_MASK_COLOR
#define PNG_FLAG_FILLER_AFTER
#define PNG_COLOR_MASK_ALPHA
#define PNG_COLOR_TYPE_PALETTE
float out
Definition lilv_test.c:1461
png_structrp png_ptr
Definition png.h:1082
const png_color_8 * png_const_color_8p
Definition png.h:508
png_row_info * png_row_infop
Definition png.h:763
png_uint_32
Definition png.h:1938
png_struct *PNG_RESTRICT png_structrp
Definition png.h:468
png_byte * png_bytep
Definition pngconf.h:579
void png_do_bgr(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:619
void png_do_packswap(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:455
void png_do_swap(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:319
void png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
Definition pngtrans.c:495
void png_do_invert(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:262
void png_do_write_transformations(png_structrp png_ptr, png_row_infop row_info)
Definition pngwtran.c:513
static void png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
Definition pngwtran.c:404
static void png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
Definition pngwtran.c:25
static void png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
Definition pngwtran.c:310
static void png_do_shift(png_row_infop row_info, png_bytep row, png_const_color_8p bit_depth)
Definition pngwtran.c:172
png_byte green
Definition png.h:502
png_byte gray
Definition png.h:504
png_byte blue
Definition png.h:503
png_byte red
Definition png.h:501
png_byte alpha
Definition png.h:505
png_uint_32 width
Definition png.h:755
png_byte color_type
Definition png.h:757
png_byte bit_depth
Definition png.h:758
png_byte pixel_depth
Definition png.h:760
png_byte channels
Definition png.h:759
size_t rowbytes
Definition png.h:756
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
return c
Definition crypt.c:175
#define void
Definition unzip.h:396