diff options
| author | zverevgeny <[email protected]> | 2025-05-13 19:00:02 +0300 | 
|---|---|---|
| committer | zverevgeny <[email protected]> | 2025-05-13 19:13:54 +0300 | 
| commit | 92e06374736aa28637dc0e706455b65c8268a5e6 (patch) | |
| tree | 3df370c199ae25d308e542f02af20f43eab78f8a /contrib/python/Pillow/py3/libImaging/File.c | |
| parent | dc63d5794da99c2ebe3f32914d0351d9707660b0 (diff) | |
Import matplotlib
commit_hash:d59c2338025ef8fd1e1f961ed9d8d5fd52d0bd96
Diffstat (limited to 'contrib/python/Pillow/py3/libImaging/File.c')
| -rw-r--r-- | contrib/python/Pillow/py3/libImaging/File.c | 78 | 
1 files changed, 78 insertions, 0 deletions
| diff --git a/contrib/python/Pillow/py3/libImaging/File.c b/contrib/python/Pillow/py3/libImaging/File.c new file mode 100644 index 00000000000..76d0abccc4f --- /dev/null +++ b/contrib/python/Pillow/py3/libImaging/File.c @@ -0,0 +1,78 @@ +/* + * The Python Imaging Library + * $Id$ + * + * built-in image file handling + * + * history: + * 1995-11-26 fl  Created, supports PGM/PPM + * 1996-08-07 fl  Write "1" images as PGM + * 1999-02-21 fl  Don't write non-standard modes + * + * Copyright (c) 1997-99 by Secret Labs AB. + * Copyright (c) 1995-96 by Fredrik Lundh. + * + * See the README file for information on usage and redistribution. + */ + +#include "Imaging.h" + +#include <ctype.h> + +int +ImagingSaveRaw(Imaging im, FILE *fp) { +    int x, y, i; + +    if (strcmp(im->mode, "1") == 0 || strcmp(im->mode, "L") == 0) { +        /* @PIL227: FIXME: for mode "1", map != 0 to 255 */ + +        /* PGM "L" */ +        for (y = 0; y < im->ysize; y++) { +            fwrite(im->image[y], 1, im->xsize, fp); +        } + +    } else { +        /* PPM "RGB" or other internal format */ +        for (y = 0; y < im->ysize; y++) { +            for (x = i = 0; x < im->xsize; x++, i += im->pixelsize) { +                fwrite(im->image[y] + i, 1, im->bands, fp); +            } +        } +    } + +    return 1; +} + +int +ImagingSavePPM(Imaging im, const char *outfile) { +    FILE *fp; + +    if (!im) { +        (void)ImagingError_ValueError(NULL); +        return 0; +    } + +    fp = fopen(outfile, "wb"); +    if (!fp) { +        (void)ImagingError_OSError(); +        return 0; +    } + +    if (strcmp(im->mode, "1") == 0 || strcmp(im->mode, "L") == 0) { +        /* Write "PGM" */ +        fprintf(fp, "P5\n%d %d\n255\n", im->xsize, im->ysize); +    } else if (strcmp(im->mode, "RGB") == 0) { +        /* Write "PPM" */ +        fprintf(fp, "P6\n%d %d\n255\n", im->xsize, im->ysize); +    } else { +        fclose(fp); +        (void)ImagingError_ModeError(); +        return 0; +    } + +    ImagingSaveRaw(im, fp); + +    fclose(fp); + +    return 1; +} | 
