1/*
2 *  grfmt_imageio.h
3 *
4 *
5 *  Created by Morgan Conbere on 5/17/07.
6 *
7 */
8
9#ifndef _GRFMT_IMAGEIO_H_
10#define _GRFMT_IMAGEIO_H_
11
12#ifdef HAVE_IMAGEIO
13
14#include "grfmt_base.h"
15#include <ApplicationServices/ApplicationServices.h>
16
17class GrFmtImageIOReader : public GrFmtReader
18{
19public:
20
21    GrFmtImageIOReader( const char* filename );
22    ~GrFmtImageIOReader();
23
24    bool  ReadData( uchar* data, int step, int color );
25    bool  ReadHeader();
26    void  Close();
27
28protected:
29
30    CGImageRef imageRef;
31};
32
33class GrFmtImageIOWriter : public GrFmtWriter
34{
35public:
36
37    GrFmtImageIOWriter( const char* filename );
38    ~GrFmtImageIOWriter();
39
40    bool  WriteImage( const uchar* data, int step,
41                      int width, int height, int depth, int channels );
42};
43
44// ImageIO filter factory
45class GrFmtImageIO :public GrFmtFilterFactory
46{
47public:
48
49    GrFmtImageIO();
50    ~GrFmtImageIO();
51
52    bool CheckFile( const char* filename );
53
54    GrFmtReader* NewReader( const char* filename );
55    GrFmtWriter* NewWriter( const char* filename );
56};
57
58#endif/*HAVE_IMAGEIO*/
59
60#endif/*_GRFMT_IMAGEIO_H_*/
61