//! Writes a Jpeg file ILboolean ilSave_JPEG(const ILstring FileName) { ILHANDLE JpegFile; ILuint JpegSize; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } JpegFile = iopenw(FileName); if (JpegFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return IL_FALSE; } JpegSize = ilSaveF_JPEG(JpegFile); iclosew(JpegFile); if (JpegSize == 0) return IL_FALSE; return IL_TRUE; }
//! Writes a Pnm file ILboolean ilSavePnm(const ILstring FileName) { ILHANDLE PnmFile; ILboolean bPnm = IL_FALSE; FName = (ILstring)FileName; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } PnmFile = iopenw(FileName); if (PnmFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bPnm; } bPnm = ilSavePnmF(PnmFile); iclosew(PnmFile); return bPnm; }
ILboolean ilSaveJpeg(ILconst_string FileName) { ILHANDLE JpegFile; ILboolean bJpeg = IL_FALSE; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } JpegFile = iopenw(FileName); if (JpegFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bJpeg; } bJpeg = ilSaveJpegF(JpegFile); iclosew(JpegFile); return bJpeg; }
//! Writes a Hdr file ILboolean ilSaveHdr(ILconst_string FileName) { ILHANDLE HdrFile; ILboolean bHdr = IL_FALSE; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } HdrFile = iopenw(FileName); if (HdrFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bHdr; } bHdr = ilSaveHdrF(HdrFile); iclosew(HdrFile); return bHdr; }
ILboolean ilSaveRaw(const ILstring FileName) { ILHANDLE RawFile; ILboolean bRaw = IL_FALSE; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } RawFile = iopenw(FileName); if (RawFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bRaw; } bRaw = ilSaveRawF(RawFile); iclosew(RawFile); return bRaw; }
//! Writes a Tiff file ILboolean ilSaveTiff(const ILstring FileName) { ILHANDLE TiffFile; ILboolean bTiff = IL_FALSE; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } TiffFile = iopenw(FileName); if (TiffFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bTiff; } //bTiff = ilSaveTiffF(TiffFile); bTiff = iSaveTiffInternal(FileName); iclosew(TiffFile); return bTiff; }
void sgiSwitchData(ILubyte *Data, ILuint SizeOfData) { ILubyte Temp; ILuint i; #ifdef ALTIVEC_GCC i = 0; union { vector unsigned char vec; vector unsigned int load; }inversion_vector; inversion_vector.load = (vector unsigned int)\ {0x01000302,0x05040706,0x09080B0A,0x0D0C0F0E}; while( i <= SizeOfData-16 ) { vector unsigned char data = vec_ld(i,Data); vec_perm(data,data,inversion_vector.vec); vec_st(data,i,Data); i+=16; } SizeOfData -= i; #endif for (i = 0; i < SizeOfData; i += 2) { Temp = Data[i]; Data[i] = Data[i+1]; Data[i+1] = Temp; } return; } /*----------------------------------------------------------------------------*/ // Just an internal convenience function for reading SGI files ILboolean iNewSgi(iSgiHeader *Head) { if (!ilTexImage(Head->XSize, Head->YSize, Head->Bpc, (ILubyte)Head->ZSize, 0, IL_UNSIGNED_BYTE, NULL)) { return IL_FALSE; } iCurImage->Origin = IL_ORIGIN_LOWER_LEFT; switch (Head->ZSize) { case 1: iCurImage->Format = IL_LUMINANCE; break; case 2: iCurImage->Format = IL_LUMINANCE_ALPHA; break; case 3: iCurImage->Format = IL_RGB; break; case 4: iCurImage->Format = IL_RGBA; break; default: ilSetError(IL_ILLEGAL_FILE_VALUE); return IL_FALSE; } switch (Head->Bpc) { case 1: if (Head->PixMin < 0) iCurImage->Type = IL_BYTE; else iCurImage->Type = IL_UNSIGNED_BYTE; break; case 2: if (Head->PixMin < 0) iCurImage->Type = IL_SHORT; else iCurImage->Type = IL_UNSIGNED_SHORT; break; default: ilSetError(IL_ILLEGAL_FILE_VALUE); return IL_FALSE; } iCurImage->Origin = IL_ORIGIN_LOWER_LEFT; return IL_TRUE; } /*----------------------------------------------------------------------------*/ //! Writes a SGI file ILboolean ilSaveSgi(ILconst_string FileName) { ILHANDLE SgiFile; ILboolean bSgi = IL_FALSE; if (ilGetBoolean(IL_FILE_MODE) == IL_FALSE) { if (iFileExists(FileName)) { ilSetError(IL_FILE_ALREADY_EXISTS); return IL_FALSE; } } SgiFile = iopenw(FileName); if (SgiFile == NULL) { ilSetError(IL_COULD_NOT_OPEN_FILE); return bSgi; } bSgi = ilSaveSgiF(SgiFile); iclosew(SgiFile); return bSgi; }