PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and

源代码在线查看: tiffr.cpp

软件大小: 7006 K
上传用户: sinoarts
关键词: applications environment footprint operating
下载地址: 免注册下载 普通下载 VIP

相关代码

								#ifdef HAVE_CONFIG_H				#include"config.h"				#endif								#ifdef HAVE_LIBTIFF								#include				#include								#include"tiffr.h"								void kimgio_tiff_read( QImageIO *io )				{					TIFF *tiff;					uint32 width, height;					uint32 *data;									// FIXME: use qdatastream									// open file					tiff = TIFFOpen( io->fileName(), "r" );									if( tiff == 0 ) {						return;					}									// create image with loaded dimensions					TIFFGetField( tiff, TIFFTAG_IMAGEWIDTH,	&width );					TIFFGetField( tiff, TIFFTAG_IMAGELENGTH, &height );									QImage image( width, height, 32 );					data = (uint32 *)image.bits();									//Sven: changed to %ld for 64bit machines					debug( "unsigned size: %ld, uint32 size: %ld",						(long)sizeof(unsigned), (long)sizeof(uint32) );									// read data					bool stat =TIFFReadRGBAImage( tiff, width, height, data );									if( stat == 0 ) {						TIFFClose( tiff );						return;					}									// reverse image (it's upside down)					for( unsigned ctr = 0; ctr < (height>>1); ) {						unsigned *line1 = (unsigned *)image.scanLine( ctr );						unsigned *line2 = (unsigned *)image.scanLine( height 							- ( ++ctr ) );										for( unsigned x = 0; x < width; x++ ) {							int temp = *line1;							*line1 = *line2;							*line2 = temp;							line1++;							line2++;						}										// swap rows					}									// set channel order to Qt order					// FIXME: Right now they are the same, but will it change?								//	for( int ctr = (image.numBytes() / sizeof(uint32))+1; ctr ; ctr-- ) {				//		// TODO: manage alpha with TIFFGetA				//		*data = qRgb( TIFFGetR( *data ), 				//			TIFFGetG( *data ), TIFFGetB( *data ) );				//		data++;				//	}					TIFFClose( tiff );									io->setImage( image );					io->setStatus ( 0 );				}								void kimgio_tiff_write( QImageIO * )				{					// TODO: stub				}				#endif							

相关资源