一个开源的Flash 播放器,可以在Windows/Linux 上运行

源代码在线查看: image.h

软件大小: 604 K
上传用户: maple_78
关键词: Windows Flash Linux 开源
下载地址: 免注册下载 普通下载 VIP

相关代码

				// image.h	-- Thatcher Ulrich  2002								// This source code has been donated to the Public Domain.  Do				// whatever you want with it.								// Handy image utilities for RGB surfaces.								#ifndef IMAGE_H				#define IMAGE_H												#include "base/tu_config.h"				#include "base/tu_types.h"				class tu_file;				namespace jpeg { struct input; };												namespace image				{					struct image_base					{						Uint8*	m_data;						int	m_width;						int	m_height;						int	m_pitch;	// byte offset from one row to the next										image_base(Uint8* data, int width, int height, int pitch);					};									// 24-bit RGB image.  Packed data, red byte first (RGBRGB...)					struct rgb : public image_base					{						rgb(int width, int height);						~rgb();					};									// 32-bit RGBA image.  Packed data, red byte first (RGBARGBA...)					struct rgba : public image_base					{						rgba(int width, int height);						~rgba();										void	set_pixel(int x, int y, Uint8 r, Uint8 g, Uint8 b, Uint8 a);					};									// 8-bit alpha image.					struct alpha : public image_base					{						alpha(int width, int height);						~alpha();										void	set_pixel(int x, int y, Uint8 a);										// Bitwise content comparison.						bool	operator==(const alpha& a) const;										// Return a hash code based on the image contents.						unsigned int	compute_hash() const;					};													// Make a system-memory 24-bit bitmap surface.  24-bit packed					// data, red byte first.					rgb*	create_rgb(int width, int height);													// Make a system-memory 32-bit bitmap surface.  Packed data,					// red byte first.					rgba*	create_rgba(int width, int height);													// Make a system-memory 8-bit bitmap surface.					alpha*	create_alpha(int width, int height);														Uint8*	scanline(image_base* surf, int y);					const Uint8*	scanline(const image_base* surf, int y);													void	resample(rgb* out, int out_x0, int out_y0, int out_x1, int out_y1,							 rgb* in, float in_x0, float in_y0, float in_x1, float in_y1);									void	resample(rgba* out, int out_x0, int out_y0, int out_x1, int out_y1,							 rgba* in, float in_x0, float in_y0, float in_x1, float in_y1);									void	write_jpeg(tu_file* out, rgb* image, int quality);					void	write_tga(tu_file* out, rgba* image);									rgb*	read_jpeg(const char* filename);					rgb*	read_jpeg(tu_file* in);									// For reading SWF JPEG2-style image data (slight variation on					// ordinary JPEG).					rgb*	read_swf_jpeg2(tu_file* in);									// For reading SWF JPEG2-style image data, using pre-loaded					// headers stored in the given jpeg::input object.					rgb*	read_swf_jpeg2_with_tables(jpeg::input* loader);									// For reading SWF JPEG3-style image data, like ordinary JPEG, 					// but stores the data in rgba format.					rgba*	read_swf_jpeg3(tu_file* in);									// Fast, in-place, DESTRUCTIVE resample.  For making mip-maps.					// Munges the input image to produce the output image.					void	make_next_miplevel(rgb* image);					void	make_next_miplevel(rgba* image);				};												#endif // IMAGE_H								// Local Variables:				// mode: C++				// c-basic-offset: 8 				// tab-width: 8				// indent-tabs-mode: t				// End:							

相关资源