mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-04-27 20:43:43 +03:00
Use macros for FLIP_LEFT_RIGHT and ROTATE_180
This commit is contained in:
parent
b6b3b004d8
commit
bc13a9d011
|
@ -27,28 +27,27 @@ ImagingFlipLeftRight(Imaging imOut, Imaging imIn)
|
||||||
|
|
||||||
ImagingCopyInfo(imOut, imIn);
|
ImagingCopyInfo(imOut, imIn);
|
||||||
|
|
||||||
|
#define FLIP_LEFT_RIGHT(INT, image) \
|
||||||
|
for (y = 0; y < imIn->ysize; y++) { \
|
||||||
|
INT* in = imIn->image[y]; \
|
||||||
|
INT* out = imOut->image[y]; \
|
||||||
|
xr = imIn->xsize-1; \
|
||||||
|
for (x = 0; x < imIn->xsize; x++, xr--) \
|
||||||
|
out[xr] = in[x]; \
|
||||||
|
}
|
||||||
|
|
||||||
ImagingSectionEnter(&cookie);
|
ImagingSectionEnter(&cookie);
|
||||||
|
|
||||||
if (imIn->image8) {
|
if (imIn->image8) {
|
||||||
for (y = 0; y < imIn->ysize; y++) {
|
FLIP_LEFT_RIGHT(UINT8, image8)
|
||||||
UINT8* in = (UINT8*) imIn->image8[y];
|
|
||||||
UINT8* out = (UINT8*) imOut->image8[y];
|
|
||||||
xr = imIn->xsize-1;
|
|
||||||
for (x = 0; x < imIn->xsize; x++, xr--)
|
|
||||||
out[xr] = in[x];
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for (y = 0; y < imIn->ysize; y++) {
|
FLIP_LEFT_RIGHT(INT32, image32)
|
||||||
UINT32* in = (UINT32*) imIn->image32[y];
|
|
||||||
UINT32* out = (UINT32*) imOut->image32[y];
|
|
||||||
xr = imIn->xsize-1;
|
|
||||||
for (x = 0; x < imIn->xsize; x++, xr--)
|
|
||||||
out[xr] = in[x];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImagingSectionLeave(&cookie);
|
ImagingSectionLeave(&cookie);
|
||||||
|
|
||||||
|
#undef FLIP_LEFT_RIGHT
|
||||||
|
|
||||||
return imOut;
|
return imOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,29 +240,28 @@ ImagingRotate180(Imaging imOut, Imaging imIn)
|
||||||
|
|
||||||
ImagingCopyInfo(imOut, imIn);
|
ImagingCopyInfo(imOut, imIn);
|
||||||
|
|
||||||
|
#define ROTATE_180(INT, image) \
|
||||||
|
for (y = 0; y < imIn->ysize; y++, yr--) { \
|
||||||
|
INT* in = imIn->image[y]; \
|
||||||
|
INT* out = imOut->image[yr]; \
|
||||||
|
xr = imIn->xsize-1; \
|
||||||
|
for (x = 0; x < imIn->xsize; x++, xr--) \
|
||||||
|
out[xr] = in[x]; \
|
||||||
|
}
|
||||||
|
|
||||||
ImagingSectionEnter(&cookie);
|
ImagingSectionEnter(&cookie);
|
||||||
|
|
||||||
yr = imIn->ysize-1;
|
yr = imIn->ysize-1;
|
||||||
if (imIn->image8) {
|
if (imIn->image8) {
|
||||||
for (y = 0; y < imIn->ysize; y++, yr--) {
|
ROTATE_180(UINT8, image8)
|
||||||
UINT8* in = (UINT8*) imIn->image8[y];
|
|
||||||
UINT8* out = (UINT8*) imOut->image8[yr];
|
|
||||||
xr = imIn->xsize-1;
|
|
||||||
for (x = 0; x < imIn->xsize; x++, xr--)
|
|
||||||
out[xr] = in[x];
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for (y = 0; y < imIn->ysize; y++, yr--) {
|
ROTATE_180(INT32, image32)
|
||||||
UINT32* in = (UINT32*) imIn->image32[y];
|
|
||||||
UINT32* out = (UINT32*) imOut->image32[yr];
|
|
||||||
xr = imIn->xsize-1;
|
|
||||||
for (x = 0; x < imIn->xsize; x++, xr--)
|
|
||||||
out[xr] = in[x];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImagingSectionLeave(&cookie);
|
ImagingSectionLeave(&cookie);
|
||||||
|
|
||||||
|
#undef ROTATE_180
|
||||||
|
|
||||||
return imOut;
|
return imOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user