Basically, blender adds a few metadata fields to images when we render an image. Those metadata can now be viewed in the image editor. Also, made sure metadata are available when we write imbufs to disc with "Save As". There may be more cases here that need fixing, but this means that loading an image with metadata will now properly preserve them in blender.
67 lines
2.3 KiB
C++
67 lines
2.3 KiB
C++
/*
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2005 Blender Foundation
|
|
* All rights reserved.
|
|
*
|
|
* The Original Code is: all of this file.
|
|
*
|
|
* Contributor(s): Austin Benesh. Ton Roosendaal.
|
|
*
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
*/
|
|
|
|
/** \file blender/imbuf/intern/IMB_metadata.h
|
|
* \ingroup imbuf
|
|
*/
|
|
|
|
|
|
#ifndef __IMB_METADATA_H__
|
|
#define __IMB_METADATA_H__
|
|
|
|
struct ImBuf;
|
|
|
|
/** The metadata is a list of key/value pairs (both char *) that can me
|
|
* saved in the header of several image formats.
|
|
* Apart from some common keys like
|
|
* 'Software' and 'Description' (png standard) we'll use keys within the
|
|
* Blender namespace, so should be called 'Blender::StampInfo' or 'Blender::FrameNum'
|
|
* etc...
|
|
*/
|
|
|
|
|
|
/* free blender ImMetaData struct */
|
|
void IMB_metadata_free(struct ImBuf *img);
|
|
|
|
/** set user data in the ImMetaData struct, which has to be allocated with IMB_metadata_create
|
|
* before calling this function.
|
|
* \param img - the ImBuf that contains the image data
|
|
* \param key - the key of the field
|
|
* \param value - the data to be written to the field. zero terminated string
|
|
* \return - 1 (true) if ImageInfo present, 0 (false) otherwise
|
|
*/
|
|
bool IMB_metadata_add_field(struct ImBuf *img, const char *key, const char *value);
|
|
|
|
/** delete the key/field par in the ImMetaData struct.
|
|
* \param img - the ImBuf that contains the image data
|
|
* \param key - the key of the field
|
|
* \return - 1 (true) if delete the key/field, 0 (false) otherwise
|
|
*/
|
|
bool IMB_metadata_del_field(struct ImBuf *img, const char *key);
|
|
|
|
#endif /* __IMB_METADATA_H__ */
|