mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-08-14 17:24:46 +03:00
account for pixelsize=2 in ImagingExpand()
This commit is contained in:
parent
25df706e67
commit
875d59122a
|
@ -53,38 +53,40 @@ ImagingExpand(Imaging imIn, int xmargin, int ymargin, int mode) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EXPAND_LINE(type, image, yin, yout) \
|
#define EXPAND_LINE(type, yin, yout) \
|
||||||
{ \
|
{ \
|
||||||
for (x = 0; x < xmargin; x++) { \
|
for (x = 0; x < xmargin; x++) { \
|
||||||
imOut->image[yout][x] = imIn->image[yin][0]; \
|
((type *)imOut->image[yout])[x] = ((type *)imIn->image[yin])[0]; \
|
||||||
} \
|
} \
|
||||||
for (x = 0; x < imIn->xsize; x++) { \
|
for (x = 0; x < imIn->xsize; x++) { \
|
||||||
imOut->image[yout][x + xmargin] = imIn->image[yin][x]; \
|
((type *)imOut->image[yout])[x + xmargin] = ((type *)imIn->image[yin])[x]; \
|
||||||
} \
|
} \
|
||||||
for (x = 0; x < xmargin; x++) { \
|
for (x = 0; x < xmargin; x++) { \
|
||||||
imOut->image[yout][xmargin + imIn->xsize + x] = \
|
((type *)imOut->image[yout])[xmargin + imIn->xsize + x] = \
|
||||||
imIn->image[yin][imIn->xsize - 1]; \
|
((type *)imIn->image[yin])[imIn->xsize - 1]; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EXPAND(type, image) \
|
#define EXPAND(type) \
|
||||||
{ \
|
{ \
|
||||||
for (y = 0; y < ymargin; y++) { \
|
for (y = 0; y < ymargin; y++) { \
|
||||||
EXPAND_LINE(type, image, 0, y); \
|
EXPAND_LINE(type, 0, y); \
|
||||||
} \
|
} \
|
||||||
for (y = 0; y < imIn->ysize; y++) { \
|
for (y = 0; y < imIn->ysize; y++) { \
|
||||||
EXPAND_LINE(type, image, y, y + ymargin); \
|
EXPAND_LINE(type, y, y + ymargin); \
|
||||||
} \
|
} \
|
||||||
for (y = 0; y < ymargin; y++) { \
|
for (y = 0; y < ymargin; y++) { \
|
||||||
EXPAND_LINE(type, image, imIn->ysize - 1, ymargin + imIn->ysize + y); \
|
EXPAND_LINE(type, imIn->ysize - 1, ymargin + imIn->ysize + y); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
ImagingSectionEnter(&cookie);
|
ImagingSectionEnter(&cookie);
|
||||||
if (imIn->image8) {
|
if (imIn->pixelsize == 1) {
|
||||||
EXPAND(UINT8, image8);
|
EXPAND(UINT8);
|
||||||
} else {
|
} else if (imIn->pixelsize == 2) {
|
||||||
EXPAND(INT32, image32);
|
EXPAND(UINT16);
|
||||||
|
} else if (imIn->pixelsize == 4) {
|
||||||
|
EXPAND(INT32);
|
||||||
}
|
}
|
||||||
ImagingSectionLeave(&cookie);
|
ImagingSectionLeave(&cookie);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user