/* Reads whole file in a memory block */ static BOOL ReadFileInMemory(const char *cFileName, char **Buffer, size_t *Len) { FILE *fp; size_t Size; char *Ptr; fp = fopen(cFileName, "rt"); if (!fp) return false; Size = xfilelength(fileno(fp)); if (Size <= 0) { fclose(fp); return false; } Ptr = (char*)malloc(Size+1); // C->C++ : cast Size = fread(Ptr, 1, Size, fp); fclose(fp); Ptr[Size] = '\0'; *Buffer = Ptr; *Len = Size; return true; }
static void DoEmbedProfile(TIFF* Out, const char* ProfileFile) { FILE* f; size_t size, EmbedLen; LPBYTE EmbedBuffer; f = fopen(ProfileFile, "rb"); if (f == NULL) return; size = xfilelength(fileno(f)); EmbedBuffer = (LPBYTE) malloc(size + 1); EmbedLen = fread(EmbedBuffer, 1, size, f); fclose(f); EmbedBuffer[EmbedLen] = 0; TIFFSetField(Out, TIFFTAG_ICCPROFILE, EmbedLen, EmbedBuffer); free(EmbedBuffer); }
static void DoEmbedProfile(const char* ProfileFile) { FILE* f; size_t size, EmbedLen; LPBYTE EmbedBuffer; f = fopen(ProfileFile, "rb"); if (f == NULL) return; size = xfilelength(fileno(f)); EmbedBuffer = (LPBYTE) malloc(size + 1); EmbedLen = fread(EmbedBuffer, 1, size, f); fclose(f); EmbedBuffer[EmbedLen] = 0; write_icc_profile (&Compressor, EmbedBuffer, EmbedLen); free(EmbedBuffer); }