16acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* 26acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn * grfmt_imageio.h 36acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn * 46acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn * 56acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn * Created by Morgan Conbere on 5/17/07. 66acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn * 76acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn */ 86acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 96acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef _GRFMT_IMAGEIO_H_ 106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define _GRFMT_IMAGEIO_H_ 116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef HAVE_IMAGEIO 136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "grfmt_base.h" 156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include <ApplicationServices/ApplicationServices.h> 166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennclass GrFmtImageIOReader : public GrFmtReader 186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennpublic: 206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn GrFmtImageIOReader( const char* filename ); 226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn ~GrFmtImageIOReader(); 236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn bool ReadData( uchar* data, int step, int color ); 256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn bool ReadHeader(); 266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn void Close(); 276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennprotected: 296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn CGImageRef imageRef; 316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennclass GrFmtImageIOWriter : public GrFmtWriter 346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennpublic: 366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn GrFmtImageIOWriter( const char* filename ); 386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn ~GrFmtImageIOWriter(); 396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn bool WriteImage( const uchar* data, int step, 416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int width, int height, int depth, int channels ); 426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// ImageIO filter factory 456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennclass GrFmtImageIO :public GrFmtFilterFactory 466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennpublic: 486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn GrFmtImageIO(); 506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn ~GrFmtImageIO(); 516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn bool CheckFile( const char* filename ); 536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn GrFmtReader* NewReader( const char* filename ); 556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn GrFmtWriter* NewWriter( const char* filename ); 566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif/*HAVE_IMAGEIO*/ 596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif/*_GRFMT_IMAGEIO_H_*/ 61