1/* Image manipulation functions
2 *
3 * Project : minidlna
4 * Website : http://sourceforge.net/projects/minidlna/
5 * Author  : Justin Maggard
6 *
7 * MiniDLNA media server
8 * Copyright (C) 2009  Justin Maggard
9 *
10 * This file is part of MiniDLNA.
11 *
12 * MiniDLNA is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15 *
16 * MiniDLNA is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>.
23 */
24#include <inttypes.h>
25
26#define ROTATE_NONE 0x0
27#define ROTATE_90   0x1
28#define ROTATE_180  0x2
29#define ROTATE_270  0x4
30
31typedef uint32_t pix;
32
33typedef struct {
34	int32_t width;
35	int32_t height;
36	pix     *buf;
37} image_s;
38
39void
40image_free(image_s *pimage);
41
42int
43image_get_jpeg_date_xmp(const char * path, char ** date);
44
45int
46image_get_jpeg_resolution(const char * path, int * width, int * height);
47
48image_s *
49image_new_from_jpeg(const char *path, int is_file, const uint8_t *ptr, int size, int scale, int resize);
50
51image_s *
52image_resize(image_s * src_image, int32_t width, int32_t height);
53
54unsigned char *
55image_save_to_jpeg_buf(image_s * pimage, int * size);
56
57char *
58image_save_to_jpeg_file(image_s * pimage, char * path);
59