Blender V2.61 - r43446
|
#include <stdint.h>
#include <string.h>
#import <Cocoa/Cocoa.h>
#include "imbuf.h"
#include "IMB_cocoa.h"
#include "BKE_global.h"
#include "BKE_colortools.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_allocimbuf.h"
Go to the source code of this file.
Defines | |
#define | FTOUSHORT(val) ((val >= 1.0f-0.5f/65535)? 65535: (val <= 0.0f)? 0: (unsigned short)(val*65535.0f + 0.5f)) |
#define | IMB_TIFF_NCB 4 |
Functions | |
struct ImBuf * | imb_cocoaLoadImage (unsigned char *mem, int size, int flags) |
short | imb_cocoaSaveImage (struct ImBuf *ibuf, char *name, int flags) |
int | imb_is_a_tiff (void *mem) |
#define FTOUSHORT | ( | val | ) | ((val >= 1.0f-0.5f/65535)? 65535: (val <= 0.0f)? 0: (unsigned short)(val*65535.0f + 0.5f)) |
Saves an image to a file.
ImBuf structures with 1, 3 or 4 bytes per pixel (GRAY, RGB, RGBA respectively) are accepted, and interpreted correctly.
Accepted formats: TIFF, GIF, BMP, PNG, JPEG, JPEG2000
ibuf,: | Image buffer. |
name,: | Name of the image file to create. |
flags,: | Currently largely ignored. |
Definition at line 207 of file imbuf_cocoa.m.
Referenced by imb_cocoaSaveImage().
#define IMB_TIFF_NCB 4 |
Checks whether a given memory buffer contains a TIFF file.
FIXME: Possible memory leak if mem is less than IMB_TIFF_NCB bytes long. However, changing this will require up-stream modifications.
This method uses the format identifiers from: http://www.faqs.org/faqs/graphics/fileformats-faq/part4/section-9.html The first four bytes of big-endian and little-endian TIFF files respectively are (hex): 4d 4d 00 2a 49 49 2a 00 Note that TIFF files on *any* platform can be either big- or little-endian; it's not platform-specific.
AFAICT, libtiff doesn't provide a method to do this automatically, and hence my manual comparison. - Jonathan Merritt (lancelet) 4th Sept 2005.
Definition at line 378 of file imbuf_cocoa.m.
Referenced by imb_is_a_tiff().
struct ImBuf* imb_cocoaLoadImage | ( | unsigned char * | mem, |
int | size, | ||
int | flags | ||
) | [read] |
Provides image file loading and saving for Blender, via Cocoa. Loads an image from the supplied buffer
Loads any Core Graphics supported type Currently is : TIFF, BMP, JPEG, GIF, PNG, DIB, ICO, and various RAW formats
mem,: | Memory containing the bitmap image |
size,: | Size of the mem buffer. |
flags,: | If flags has IB_test set then the file is not actually loaded, but all other operations take place. |
Definition at line 63 of file imbuf_cocoa.m.
References B_ENDIAN, data, ENDIAN_ORDER, ImBuf::ftype, IB_PROFILE_SRGB, IB_test, imb_addrectImBuf(), IMB_allocImBuf(), IMB_convert_rgba_to_abgr(), NULL, ImBuf::profile, ImBuf::rect, ImBuf::x, and ImBuf::y.
short imb_cocoaSaveImage | ( | struct ImBuf * | ibuf, |
char * | name, | ||
int | flags | ||
) |
Definition at line 209 of file imbuf_cocoa.m.
References BOOL, FALSE, FTOUSHORT, ImBuf::ftype, i, IB_PROFILE_SRGB, linearrgb_to_srgb(), NO, NULL, ImBuf::planes, ImBuf::profile, ImBuf::rect, ImBuf::rect_float, ImBuf::x, ImBuf::y, and YES.
int imb_is_a_tiff | ( | void * | mem | ) |
Definition at line 379 of file imbuf_cocoa.m.
References IMB_TIFF_NCB.