Merge pull request #69 from alex-chew/patch-1

fix: correct write count in savePPM
This commit is contained in:
Cubitect 2022-07-29 19:04:54 +02:00 committed by GitHub
commit 0477b60c10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 2 deletions

5
util.c
View File

@ -470,9 +470,10 @@ int savePPM(const char *path, const unsigned char *pixels, const unsigned int sx
if (!fp) if (!fp)
return -1; return -1;
fprintf(fp, "P6\n%d %d\n255\n", sx, sy); fprintf(fp, "P6\n%d %d\n255\n", sx, sy);
int written = fwrite(pixels, sx*sy, 3, fp); size_t pixelsLen = 3 * sx * sy;
size_t written = fwrite(pixels, sizeof pixels[0], pixelsLen, fp);
fclose(fp); fclose(fp);
return (unsigned int)written != 3*sx*sy; return written != pixelsLen;
} }

3
util.h
View File

@ -29,6 +29,9 @@ int biomesToImage(unsigned char *pixels,
const unsigned int sx, const unsigned int sy, const unsigned int sx, const unsigned int sy,
const unsigned int pixscale, const int flip); const unsigned int pixscale, const int flip);
/// Save the pixel buffer (e.g. from biomesToImage) to the given path in PPM format.
/// Returns 0 if successful, or -1 if the file could not be opened,
/// or 1 if not all the pixel data could be written to the file.
int savePPM(const char* path, const unsigned char *pixels, int savePPM(const char* path, const unsigned char *pixels,
const unsigned int sx, const unsigned int sy); const unsigned int sx, const unsigned int sy);