mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-27 10:26:19 +03:00
better branches
This commit is contained in:
parent
8b6ad4a471
commit
f72d5c0dfd
|
@ -43,20 +43,20 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss3 += line0[xx*4 + 3] + line0[xx*4 + 7] +
|
ss3 += line0[xx*4 + 3] + line0[xx*4 + 7] +
|
||||||
line1[xx*4 + 3] + line1[xx*4 + 7];
|
line1[xx*4 + 3] + line1[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
||||||
ss3 += line0[xx*4 + 3] + line1[xx*4 + 3];
|
ss3 += line0[xx*4 + 3] + line1[xx*4 + 3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
for (xi = 0; xi < xscale - 1; xi += 2) {
|
for (xi = 0; xi < xscale - 1; xi += 2) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0] + line[xx*4 + 4];
|
ss0 += line[xx*4 + 0] + line[xx*4 + 4];
|
||||||
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss3 += line[xx*4 + 3];
|
ss3 += line[xx*4 + 3];
|
||||||
|
@ -83,14 +83,14 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss2 += line0[xx*4 + 2] + line0[xx*4 + 6] +
|
ss2 += line0[xx*4 + 2] + line0[xx*4 + 6] +
|
||||||
line1[xx*4 + 2] + line1[xx*4 + 6];
|
line1[xx*4 + 2] + line1[xx*4 + 6];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
||||||
ss1 += line0[xx*4 + 1] + line1[xx*4 + 1];
|
ss1 += line0[xx*4 + 1] + line1[xx*4 + 1];
|
||||||
ss2 += line0[xx*4 + 2] + line1[xx*4 + 2];
|
ss2 += line0[xx*4 + 2] + line1[xx*4 + 2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
for (xi = 0; xi < xscale - 1; xi += 2) {
|
for (xi = 0; xi < xscale - 1; xi += 2) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
|
@ -98,7 +98,7 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss1 += line[xx*4 + 1] + line[xx*4 + 5];
|
ss1 += line[xx*4 + 1] + line[xx*4 + 5];
|
||||||
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss1 += line[xx*4 + 1];
|
ss1 += line[xx*4 + 1];
|
||||||
|
@ -128,7 +128,7 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss3 += line0[xx*4 + 3] + line0[xx*4 + 7] +
|
ss3 += line0[xx*4 + 3] + line0[xx*4 + 7] +
|
||||||
line1[xx*4 + 3] + line1[xx*4 + 7];
|
line1[xx*4 + 3] + line1[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
ss0 += line0[xx*4 + 0] + line1[xx*4 + 0];
|
||||||
ss1 += line0[xx*4 + 1] + line1[xx*4 + 1];
|
ss1 += line0[xx*4 + 1] + line1[xx*4 + 1];
|
||||||
|
@ -136,7 +136,7 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss3 += line0[xx*4 + 3] + line1[xx*4 + 3];
|
ss3 += line0[xx*4 + 3] + line1[xx*4 + 3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
for (xi = 0; xi < xscale - 1; xi += 2) {
|
for (xi = 0; xi < xscale - 1; xi += 2) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
|
@ -145,7 +145,7 @@ ImagingReduceNxN(Imaging imOut, Imaging imIn, int xscale, int yscale)
|
||||||
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
||||||
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss1 += line[xx*4 + 1];
|
ss1 += line[xx*4 + 1];
|
||||||
|
@ -198,7 +198,7 @@ ImagingReduce1xN(Imaging imOut, Imaging imIn, int yscale)
|
||||||
ss0 += line0[x*4 + 0] + line1[x*4 + 0];
|
ss0 += line0[x*4 + 0] + line1[x*4 + 0];
|
||||||
ss3 += line0[x*4 + 3] + line1[x*4 + 3];
|
ss3 += line0[x*4 + 3] + line1[x*4 + 3];
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
ss0 += line[x*4 + 0];
|
ss0 += line[x*4 + 0];
|
||||||
ss3 += line[x*4 + 3];
|
ss3 += line[x*4 + 3];
|
||||||
|
@ -219,7 +219,7 @@ ImagingReduce1xN(Imaging imOut, Imaging imIn, int yscale)
|
||||||
ss1 += line0[x*4 + 1] + line1[x*4 + 1];
|
ss1 += line0[x*4 + 1] + line1[x*4 + 1];
|
||||||
ss2 += line0[x*4 + 2] + line1[x*4 + 2];
|
ss2 += line0[x*4 + 2] + line1[x*4 + 2];
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
ss0 += line[x*4 + 0];
|
ss0 += line[x*4 + 0];
|
||||||
ss1 += line[x*4 + 1];
|
ss1 += line[x*4 + 1];
|
||||||
|
@ -242,7 +242,7 @@ ImagingReduce1xN(Imaging imOut, Imaging imIn, int yscale)
|
||||||
ss2 += line0[x*4 + 2] + line1[x*4 + 2];
|
ss2 += line0[x*4 + 2] + line1[x*4 + 2];
|
||||||
ss3 += line0[x*4 + 3] + line1[x*4 + 3];
|
ss3 += line0[x*4 + 3] + line1[x*4 + 3];
|
||||||
}
|
}
|
||||||
for (; yy < y*yscale + yscale; yy ++) {
|
if (yscale & 0x01) {
|
||||||
UINT8 *line = (UINT8 *)imIn->image[yy];
|
UINT8 *line = (UINT8 *)imIn->image[yy];
|
||||||
ss0 += line[x*4 + 0];
|
ss0 += line[x*4 + 0];
|
||||||
ss1 += line[x*4 + 1];
|
ss1 += line[x*4 + 1];
|
||||||
|
@ -294,7 +294,7 @@ ImagingReduceNx1(Imaging imOut, Imaging imIn, int xscale)
|
||||||
ss0 += line[xx*4 + 0] + line[xx*4 + 4];
|
ss0 += line[xx*4 + 0] + line[xx*4 + 4];
|
||||||
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss3 += line[xx*4 + 3];
|
ss3 += line[xx*4 + 3];
|
||||||
|
@ -314,7 +314,7 @@ ImagingReduceNx1(Imaging imOut, Imaging imIn, int xscale)
|
||||||
ss1 += line[xx*4 + 1] + line[xx*4 + 5];
|
ss1 += line[xx*4 + 1] + line[xx*4 + 5];
|
||||||
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss1 += line[xx*4 + 1];
|
ss1 += line[xx*4 + 1];
|
||||||
|
@ -336,7 +336,7 @@ ImagingReduceNx1(Imaging imOut, Imaging imIn, int xscale)
|
||||||
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
ss2 += line[xx*4 + 2] + line[xx*4 + 6];
|
||||||
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
ss3 += line[xx*4 + 3] + line[xx*4 + 7];
|
||||||
}
|
}
|
||||||
for (; xi < xscale; xi++) {
|
if (xscale & 0x01) {
|
||||||
xx = x*xscale + xi;
|
xx = x*xscale + xi;
|
||||||
ss0 += line[xx*4 + 0];
|
ss0 += line[xx*4 + 0];
|
||||||
ss1 += line[xx*4 + 1];
|
ss1 += line[xx*4 + 1];
|
||||||
|
@ -820,27 +820,23 @@ ImagingReduce(Imaging imIn, int xscale, int yscale)
|
||||||
|
|
||||||
ImagingSectionEnter(&cookie);
|
ImagingSectionEnter(&cookie);
|
||||||
|
|
||||||
if (xscale == yscale) {
|
if (xscale == 1) {
|
||||||
|
ImagingReduce1xN(imOut, imIn, yscale);
|
||||||
|
} else if (yscale == 1) {
|
||||||
|
ImagingReduceNx1(imOut, imIn, xscale);
|
||||||
|
} else if (xscale == yscale && xscale <= 5) {
|
||||||
if (xscale == 2) {
|
if (xscale == 2) {
|
||||||
ImagingReduce2x2(imOut, imIn);
|
ImagingReduce2x2(imOut, imIn);
|
||||||
} else if (xscale == 3) {
|
} else if (xscale == 3) {
|
||||||
ImagingReduce3x3(imOut, imIn);
|
ImagingReduce3x3(imOut, imIn);
|
||||||
} else if (xscale == 4) {
|
} else if (xscale == 4) {
|
||||||
ImagingReduce4x4(imOut, imIn);
|
ImagingReduce4x4(imOut, imIn);
|
||||||
} else if (xscale == 5) {
|
} else {
|
||||||
ImagingReduce5x5(imOut, imIn);
|
ImagingReduce5x5(imOut, imIn);
|
||||||
} else {
|
|
||||||
ImagingReduceNxN(imOut, imIn, xscale, yscale);
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (xscale == 1) {
|
|
||||||
ImagingReduce1xN(imOut, imIn, yscale);
|
|
||||||
} else if (yscale == 1) {
|
|
||||||
ImagingReduceNx1(imOut, imIn, xscale);
|
|
||||||
} else {
|
} else {
|
||||||
ImagingReduceNxN(imOut, imIn, xscale, yscale);
|
ImagingReduceNxN(imOut, imIn, xscale, yscale);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ImagingReduceCorners(imOut, imIn, xscale, yscale);
|
ImagingReduceCorners(imOut, imIn, xscale, yscale);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user