/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/python/Pillow/py3/libImaging/Offset.c
64 строки
1 KB
Anton Myagkov
Update ydb version to 24.4 (#4579)
07 фев 2026, 11:59
Не верифицирован
07 фев 2026, 11:59
2c21cae
Код
Авторство
О чём код?
/* * The Python Imaging Library * $Id$ * * offset an image in x and y directions * * history: * 96-07-22 fl: Created * 98-11-01 cgw@pgt.com: Fixed negative-array index bug * * Copyright (c) Fredrik Lundh 1996. * Copyright (c) Secret Labs AB 1997. * * See the README file for information on usage and redistribution. */ #include "Imaging.h" Imaging ImagingOffset(Imaging im, int xoffset, int yoffset) { int x, y; Imaging imOut; if (!im) { return (Imaging)ImagingError_ModeError(); } imOut = ImagingNewDirty(im->mode, im->xsize, im->ysize); if (!imOut) { return NULL; } ImagingCopyPalette(imOut, im); /* make offsets positive to avoid negative coordinates */ xoffset %= im->xsize; xoffset = im->xsize - xoffset; if (xoffset < 0) { xoffset += im->xsize; } yoffset %= im->ysize; yoffset = im->ysize - yoffset; if (yoffset < 0) { yoffset += im->ysize; } #define OFFSET(image) \ for (y = 0; y < im->ysize; y++) { \ for (x = 0; x < im->xsize; x++) { \ int yi = (y + yoffset) % im->ysize; \ int xi = (x + xoffset) % im->xsize; \ imOut->image[y][x] = im->image[yi][xi]; \ } \ } if (im->image8) { OFFSET(image8) } else { OFFSET(image32) } return imOut; }