12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * 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);
- }
|