Blender V4.3
IMB_filetype.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "IMB_imbuf.hh"
12
13/* -------------------------------------------------------------------- */
17struct ImBuf;
18
19#define IM_FTYPE_FLOAT 1
20
21struct ImFileType {
23 void (*init)();
25 void (*exit)();
26
32 bool (*is_a)(const unsigned char *buf, size_t size);
33
35 ImBuf *(*load)(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
37 ImBuf *(*load_filepath)(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
43 ImBuf *(*load_filepath_thumbnail)(const char *filepath,
44 int flags,
45 size_t max_thumb_size,
46 char colorspace[IM_MAX_SPACE],
47 size_t *r_width,
48 size_t *r_height);
50 bool (*save)(ImBuf *ibuf, const char *filepath, int flags);
51
52 int flag;
53
56
58};
59
60extern const ImFileType IMB_FILE_TYPES[];
62
63const ImFileType *IMB_file_type_from_ftype(int ftype);
64const ImFileType *IMB_file_type_from_ibuf(const ImBuf *ibuf);
65
68
71/* Type Specific Functions */
72
73/* -------------------------------------------------------------------- */
77bool imb_is_a_png(const unsigned char *mem, size_t size);
78ImBuf *imb_load_png(const unsigned char *mem,
79 size_t size,
80 int flags,
81 char colorspace[IM_MAX_SPACE]);
82bool imb_save_png(ImBuf *ibuf, const char *filepath, int flags);
83
86/* -------------------------------------------------------------------- */
90bool imb_is_a_tga(const unsigned char *mem, size_t size);
91ImBuf *imb_load_tga(const unsigned char *mem,
92 size_t size,
93 int flags,
94 char colorspace[IM_MAX_SPACE]);
95bool imb_save_tga(ImBuf *ibuf, const char *filepath, int flags);
96
99/* -------------------------------------------------------------------- */
103bool imb_is_a_iris(const unsigned char *mem, size_t size);
107ImBuf *imb_loadiris(const unsigned char *mem,
108 size_t size,
109 int flags,
110 char colorspace[IM_MAX_SPACE]);
111bool imb_saveiris(ImBuf *ibuf, const char *filepath, int flags);
112
115/* -------------------------------------------------------------------- */
119bool imb_is_a_jp2(const unsigned char *buf, size_t size);
120ImBuf *imb_load_jp2(const unsigned char *mem,
121 size_t size,
122 int flags,
123 char colorspace[IM_MAX_SPACE]);
124ImBuf *imb_load_jp2_filepath(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
125bool imb_save_jp2(ImBuf *ibuf, const char *filepath, int flags);
126
129/* -------------------------------------------------------------------- */
133bool imb_is_a_jpeg(const unsigned char *mem, size_t size);
134bool imb_savejpeg(ImBuf *ibuf, const char *filepath, int flags);
135ImBuf *imb_load_jpeg(const unsigned char *buffer,
136 size_t size,
137 int flags,
138 char colorspace[IM_MAX_SPACE]);
139ImBuf *imb_thumbnail_jpeg(const char *filepath,
140 int flags,
141 size_t max_thumb_size,
142 char colorspace[IM_MAX_SPACE],
143 size_t *r_width,
144 size_t *r_height);
145
148/* -------------------------------------------------------------------- */
152bool imb_is_a_bmp(const unsigned char *buf, size_t size);
153ImBuf *imb_load_bmp(const unsigned char *mem,
154 size_t size,
155 int flags,
156 char colorspace[IM_MAX_SPACE]);
157/* Found write info at http://users.ece.gatech.edu/~slabaugh/personal/c/bitmapUnix.c */
158bool imb_save_bmp(ImBuf *ibuf, const char *filepath, int flags);
159
162/* -------------------------------------------------------------------- */
166bool imb_is_a_cineon(const unsigned char *buf, size_t size);
167bool imb_save_cineon(ImBuf *buf, const char *filepath, int flags);
168ImBuf *imb_load_cineon(const unsigned char *mem,
169 size_t size,
170 int flags,
171 char colorspace[IM_MAX_SPACE]);
172
175/* -------------------------------------------------------------------- */
179bool imb_is_a_dpx(const unsigned char *buf, size_t size);
180bool imb_save_dpx(ImBuf *ibuf, const char *filepath, int flags);
181ImBuf *imb_load_dpx(const unsigned char *mem,
182 size_t size,
183 int flags,
184 char colorspace[IM_MAX_SPACE]);
185
188/* -------------------------------------------------------------------- */
192bool imb_is_a_hdr(const unsigned char *buf, size_t size);
193ImBuf *imb_load_hdr(const unsigned char *mem,
194 size_t size,
195 int flags,
196 char colorspace[IM_MAX_SPACE]);
197bool imb_save_hdr(ImBuf *ibuf, const char *filepath, int flags);
198
201/* -------------------------------------------------------------------- */
205bool imb_is_a_tiff(const unsigned char *buf, size_t size);
215ImBuf *imb_load_tiff(const unsigned char *mem,
216 size_t size,
217 int flags,
218 char colorspace[IM_MAX_SPACE]);
233bool imb_save_tiff(ImBuf *ibuf, const char *filepath, int flags);
234
237/* -------------------------------------------------------------------- */
241bool imb_is_a_webp(const unsigned char *buf, size_t size);
242ImBuf *imb_loadwebp(const unsigned char *mem,
243 size_t size,
244 int flags,
245 char colorspace[IM_MAX_SPACE]);
246ImBuf *imb_load_filepath_thumbnail_webp(const char *filepath,
247 const int flags,
248 const size_t max_thumb_size,
249 char colorspace[],
250 size_t *r_width,
251 size_t *r_height);
252bool imb_savewebp(ImBuf *ibuf, const char *filepath, int flags);
253
256/* -------------------------------------------------------------------- */
260void imb_init_dds();
261
262bool imb_is_a_dds(const unsigned char *buf, size_t size);
263
264ImBuf *imb_load_dds(const unsigned char *mem,
265 size_t size,
266 int flags,
267 char colorspace[IM_MAX_SPACE]);
268
271/* -------------------------------------------------------------------- */
275bool imb_is_a_psd(const unsigned char *buf, size_t size);
276
277ImBuf *imb_load_psd(const unsigned char *mem,
278 size_t size,
279 int flags,
280 char colorspace[IM_MAX_SPACE]);
281
284/* -------------------------------------------------------------------- */
288ImBuf *imb_load_filepath_thumbnail_svg(const char *filepath,
289 const int flags,
290 const size_t max_thumb_size,
291 char colorspace[],
292 size_t *r_width,
293 size_t *r_height);
294
ImBuf * imb_load_jp2(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition jp2.cc:302
ImBuf * imb_load_bmp(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_bmp.cc:22
ImBuf * imb_load_dds(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_dds.cc:52
bool imb_is_a_tga(const unsigned char *mem, size_t size)
bool imb_is_a_tiff(const unsigned char *buf, size_t size)
ImBuf * imb_load_tga(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
bool imb_is_a_bmp(const unsigned char *buf, size_t size)
Definition format_bmp.cc:17
const ImFileType * IMB_file_type_from_ftype(int ftype)
Definition filetype.cc:222
ImBuf * imb_loadwebp(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition webp.cc:41
ImBuf * imb_load_cineon(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
bool imb_savejpeg(ImBuf *ibuf, const char *filepath, int flags)
Definition jpeg.cc:746
bool imb_is_a_hdr(const unsigned char *buf, size_t size)
Definition format_hdr.cc:17
bool imb_save_hdr(ImBuf *ibuf, const char *filepath, int flags)
Definition format_hdr.cc:44
ImBuf * imb_load_filepath_thumbnail_webp(const char *filepath, const int flags, const size_t max_thumb_size, char colorspace[], size_t *r_width, size_t *r_height)
Definition webp.cc:78
ImBuf * imb_load_dpx(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_dpx.cc:23
bool imb_save_cineon(ImBuf *buf, const char *filepath, int flags)
bool imb_is_a_cineon(const unsigned char *buf, size_t size)
bool imb_is_a_dds(const unsigned char *buf, size_t size)
Definition format_dds.cc:47
bool imb_savewebp(ImBuf *ibuf, const char *filepath, int flags)
Definition webp.cc:161
bool imb_is_a_dpx(const unsigned char *buf, size_t size)
Definition format_dpx.cc:18
void imb_filetypes_init()
Definition filetype.cc:237
const ImFileType * IMB_file_type_from_ibuf(const ImBuf *ibuf)
Definition filetype.cc:232
bool imb_save_dpx(ImBuf *ibuf, const char *filepath, int flags)
Definition format_dpx.cc:41
const ImFileType IMB_FILE_TYPES[]
Definition filetype.cc:24
void imb_filetypes_exit()
Definition filetype.cc:250
bool imb_save_tga(ImBuf *ibuf, const char *filepath, int flags)
void imb_init_dds()
Definition format_dds.cc:34
bool imb_save_png(ImBuf *ibuf, const char *filepath, int flags)
Definition format_png.cc:43
bool imb_is_a_jp2(const unsigned char *buf, size_t size)
Definition jp2.cc:71
bool imb_saveiris(ImBuf *ibuf, const char *filepath, int flags)
Definition iris.cc:931
ImBuf * imb_load_jpeg(const unsigned char *buffer, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition jpeg.cc:441
bool imb_is_a_iris(const unsigned char *mem, size_t size)
Definition iris.cc:207
ImBuf * imb_load_hdr(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_hdr.cc:22
bool imb_save_tiff(ImBuf *ibuf, const char *filepath, int flags)
ImBuf * imb_load_tiff(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
bool imb_save_jp2(ImBuf *ibuf, const char *filepath, int flags)
Definition jp2.cc:1183
bool imb_save_bmp(ImBuf *ibuf, const char *filepath, int flags)
Definition format_bmp.cc:33
const ImFileType * IMB_FILE_TYPES_LAST
Definition filetype.cc:220
bool imb_is_a_png(const unsigned char *mem, size_t size)
Definition format_png.cc:18
bool imb_is_a_psd(const unsigned char *buf, size_t size)
Definition format_psd.cc:18
ImBuf * imb_load_psd(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_psd.cc:23
bool imb_is_a_webp(const unsigned char *buf, size_t size)
Definition webp.cc:33
ImBuf * imb_load_filepath_thumbnail_svg(const char *filepath, const int flags, const size_t max_thumb_size, char colorspace[], size_t *r_width, size_t *r_height)
Definition format_svg.cc:19
ImBuf * imb_thumbnail_jpeg(const char *filepath, int flags, size_t max_thumb_size, char colorspace[IM_MAX_SPACE], size_t *r_width, size_t *r_height)
Definition jpeg.cc:479
bool imb_is_a_jpeg(const unsigned char *mem, size_t size)
Definition jpeg.cc:49
ImBuf * imb_load_png(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition format_png.cc:23
ImBuf * imb_loadiris(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
Definition iris.cc:215
ImBuf * imb_load_jp2_filepath(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
Definition jp2.cc:317
#define IM_MAX_SPACE
Definition IMB_imbuf.hh:49
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
bool(* save)(ImBuf *ibuf, const char *filepath, int flags)
bool(* is_a)(const unsigned char *buf, size_t size)
void(* exit)()
void(* init)()
int default_save_role