Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/_imaging.c
Original file line number Diff line number Diff line change
Expand Up @@ -2204,25 +2204,25 @@ _transpose(ImagingObject *self, PyObject *args) {
if (imOut) {
switch (op) {
case 0:
(void)ImagingFlipLeftRight(imOut, imIn);
ImagingFlipLeftRight(imOut, imIn);
break;
case 1:
(void)ImagingFlipTopBottom(imOut, imIn);
ImagingFlipTopBottom(imOut, imIn);
break;
case 2:
(void)ImagingRotate90(imOut, imIn);
ImagingRotate90(imOut, imIn);
break;
case 3:
(void)ImagingRotate180(imOut, imIn);
ImagingRotate180(imOut, imIn);
break;
case 4:
(void)ImagingRotate270(imOut, imIn);
ImagingRotate270(imOut, imIn);
break;
case 5:
(void)ImagingTranspose(imOut, imIn);
ImagingTranspose(imOut, imIn);
break;
case 6:
(void)ImagingTransverse(imOut, imIn);
ImagingTransverse(imOut, imIn);
break;
}
}
Expand Down
88 changes: 9 additions & 79 deletions src/libImaging/Geometry.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,16 @@
/* -------------------------------------------------------------------- */
/* Transpose operations */

Imaging
void
ImagingFlipLeftRight(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xr;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->xsize || ysize != imOut->ysize) {
return (Imaging)ImagingError_Mismatch();
}
int xsize = imIn->xsize;

ImagingCopyPalette(imOut, imIn);

#define FLIP_LEFT_RIGHT(INT, image) \
for (y = 0; y < ysize; y++) { \
for (y = 0; y < imIn->ysize; y++) { \
INT *in = (INT *)imIn->image[y]; \
INT *out = (INT *)imOut->image[y]; \
xr = xsize - 1; \
Expand All @@ -55,23 +47,13 @@ ImagingFlipLeftRight(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef FLIP_LEFT_RIGHT

return imOut;
}

Imaging
void
ImagingFlipTopBottom(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int y, yr;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int ysize = imIn->ysize;
if (imIn->xsize != imOut->xsize || ysize != imOut->ysize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand All @@ -83,24 +65,14 @@ ImagingFlipTopBottom(Imaging imOut, Imaging imIn) {
}

ImagingSectionLeave(&cookie);

return imOut;
}

Imaging
void
ImagingRotate90(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xx, yy, xr, xxsize, yysize;
int xxx, yyy, xxxsize, yyysize;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->ysize || ysize != imOut->xsize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand Down Expand Up @@ -145,24 +117,14 @@ ImagingRotate90(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef ROTATE_90

return imOut;
}

Imaging
void
ImagingTranspose(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xx, yy, xxsize, yysize;
int xxx, yyy, xxxsize, yyysize;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->ysize || ysize != imOut->xsize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand Down Expand Up @@ -206,24 +168,14 @@ ImagingTranspose(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef TRANSPOSE

return imOut;
}

Imaging
void
ImagingTransverse(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xr, yr, xx, yy, xxsize, yysize;
int xxx, yyy, xxxsize, yyysize;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->ysize || ysize != imOut->xsize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand Down Expand Up @@ -269,23 +221,13 @@ ImagingTransverse(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef TRANSVERSE

return imOut;
}

Imaging
void
ImagingRotate180(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xr, yr;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->xsize || ysize != imOut->ysize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand Down Expand Up @@ -315,24 +257,14 @@ ImagingRotate180(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef ROTATE_180

return imOut;
}

Imaging
void
ImagingRotate270(Imaging imOut, Imaging imIn) {
ImagingSectionCookie cookie;
int x, y, xx, yy, yr, xxsize, yysize;
int xxx, yyy, xxxsize, yyysize;

if (!imOut || !imIn || imIn->mode != imOut->mode) {
return (Imaging)ImagingError_ModeError();
}

int xsize = imIn->xsize, ysize = imIn->ysize;
if (xsize != imOut->ysize || ysize != imOut->xsize) {
return (Imaging)ImagingError_Mismatch();
}

ImagingCopyPalette(imOut, imIn);

Expand Down Expand Up @@ -377,8 +309,6 @@ ImagingRotate270(Imaging imOut, Imaging imIn) {
ImagingSectionLeave(&cookie);

#undef ROTATE_270

return imOut;
}

/* -------------------------------------------------------------------- */
Expand Down
14 changes: 7 additions & 7 deletions src/libImaging/Imaging.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,9 +330,9 @@ extern Imaging
ImagingFillRadialGradient(ModeID mode);
extern Imaging
ImagingFilter(Imaging im, int xsize, int ysize, const FLOAT32 *kernel, FLOAT32 offset);
extern Imaging
extern void
ImagingFlipLeftRight(Imaging imOut, Imaging imIn);
extern Imaging
extern void
ImagingFlipTopBottom(Imaging imOut, Imaging imIn);
extern Imaging
ImagingGaussianBlur(
Expand Down Expand Up @@ -375,15 +375,15 @@ extern Imaging
ImagingPutBand(Imaging im, Imaging imIn, int band);
extern Imaging
ImagingRankFilter(Imaging im, int size, int rank);
extern Imaging
extern void
ImagingRotate90(Imaging imOut, Imaging imIn);
extern Imaging
extern void
ImagingRotate180(Imaging imOut, Imaging imIn);
extern Imaging
extern void
ImagingRotate270(Imaging imOut, Imaging imIn);
extern Imaging
extern void
ImagingTranspose(Imaging imOut, Imaging imIn);
extern Imaging
extern void
ImagingTransverse(Imaging imOut, Imaging imIn);
extern Imaging
ImagingResample(Imaging imIn, int xsize, int ysize, int filter, float box[4]);
Expand Down
Loading