⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tif_dumpmode.c

📁 一个国人自己实现图像库的程序(有参考价值)
💻 C
字号:
/* $Header: /cvsroot/osrs/libtiff/libtiff/tif_dumpmode.c,v 1.2 2000/01/28 15:08:10 warmerda Exp $ *//* * Copyright (c) 1988-1997 Sam Leffler * Copyright (c) 1991-1997 Silicon Graphics, Inc. * * Permission to use, copy, modify, distribute, and sell this software and  * its documentation for any purpose is hereby granted without fee, provided * that (i) the above copyright notices and this permission notice appear in * all copies of the software and related documentation, and (ii) the names of * Sam Leffler and Silicon Graphics may not be used in any advertising or * publicity relating to the software without the specific, prior written * permission of Sam Leffler and Silicon Graphics. *  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.   *  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE  * OF THIS SOFTWARE. *//* * TIFF Library. * * "Null" Compression Algorithm Support. */#include "tiffiop.h"#include <assert.h>/* * Encode a hunk of pixels. */static intDumpModeEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s){	(void) s;	while (cc > 0) {		tsize_t n;		n = cc;		if (tif->tif_rawcc + n > tif->tif_rawdatasize)			n = tif->tif_rawdatasize - tif->tif_rawcc;                assert( n > 0 );                		/*		 * Avoid copy if client has setup raw		 * data buffer to avoid extra copy.		 */		if (tif->tif_rawcp != pp)			_TIFFmemcpy(tif->tif_rawcp, pp, n);		tif->tif_rawcp += n;		tif->tif_rawcc += n;		pp += n;		cc -= n;		if (tif->tif_rawcc >= tif->tif_rawdatasize &&		    !TIFFFlushData1(tif))			return (-1);	}	return (1);}/* * Decode a hunk of pixels. */static intDumpModeDecode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s){	(void) s;	if (tif->tif_rawcc < cc) {		TIFFError(tif->tif_name,		    "DumpModeDecode: Not enough data for scanline %d",		    tif->tif_row);		return (0);	}	/*	 * Avoid copy if client has setup raw	 * data buffer to avoid extra copy.	 */	if (tif->tif_rawcp != buf)		_TIFFmemcpy(buf, tif->tif_rawcp, cc);	tif->tif_rawcp += cc;	tif->tif_rawcc -= cc;	return (1);}/* * Seek forwards nrows in the current strip. */static intDumpModeSeek(TIFF* tif, uint32 nrows){	tif->tif_rawcp += nrows * tif->tif_scanlinesize;	tif->tif_rawcc -= nrows * tif->tif_scanlinesize;	return (1);}/* * Initialize dump mode. */intTIFFInitDumpMode(TIFF* tif, int scheme){	(void) scheme;	tif->tif_decoderow = DumpModeDecode;	tif->tif_decodestrip = DumpModeDecode;	tif->tif_decodetile = DumpModeDecode;	tif->tif_encoderow = DumpModeEncode;	tif->tif_encodestrip = DumpModeEncode;	tif->tif_encodetile = DumpModeEncode;	tif->tif_seek = DumpModeSeek;	return (1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -