123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- * The Python Imaging Library
- * $Id$
- *
- * copy image
- *
- * history:
- * 95-11-26 fl Moved from Imaging.c
- * 97-05-12 fl Added ImagingCopy2
- * 97-08-28 fl Allow imOut == NULL in ImagingCopy2
- *
- * Copyright (c) Fredrik Lundh 1995-97.
- * Copyright (c) Secret Labs AB 1997.
- *
- * See the README file for details on usage and redistribution.
- */
- #include "Imaging.h"
- static Imaging
- _copy(Imaging imOut, Imaging imIn) {
- ImagingSectionCookie cookie;
- int y;
- if (!imIn) {
- return (Imaging)ImagingError_ValueError(NULL);
- }
- imOut = ImagingNew2Dirty(imIn->mode, imOut, imIn);
- if (!imOut) {
- return NULL;
- }
- ImagingCopyPalette(imOut, imIn);
- ImagingSectionEnter(&cookie);
- if (imIn->block != NULL && imOut->block != NULL) {
- memcpy(imOut->block, imIn->block, imIn->ysize * imIn->linesize);
- } else {
- for (y = 0; y < imIn->ysize; y++) {
- memcpy(imOut->image[y], imIn->image[y], imIn->linesize);
- }
- }
- ImagingSectionLeave(&cookie);
- return imOut;
- }
- Imaging
- ImagingCopy(Imaging imIn) {
- return _copy(NULL, imIn);
- }
- Imaging
- ImagingCopy2(Imaging imOut, Imaging imIn) {
- return _copy(imOut, imIn);
- }
|