void dng_image::Put (const dng_pixel_buffer &buffer)
	{
	
	// Move the overlapping pixels.
	
	dng_rect overlap = buffer.fArea & fBounds;
	
	if (overlap.NotEmpty ())
		{
	
		dng_pixel_buffer temp (buffer);
		
		temp.fArea = overlap;
		
		temp.fData = (void *) buffer.ConstPixel (overlap.t,
								   		 		 overlap.l,
								   		 		 buffer.fPlane);
												 
		// Move the overlapping planes.
												 
		if (temp.fPlane < Planes ())
			{
			
			temp.fPlanes = Min_uint32 (temp.fPlanes,
									   Planes () - temp.fPlane);
	
			DoPut (temp);
			
			}
		
		}
		
	}
Exemplo n.º 2
0
I_OStream& Binary_Stream::put(
	const void* inBuffer, 
	vuint32 		inHowMuch)
{ 
	mLastCount = DoPut(inBuffer, inHowMuch); 
	if (mLastCount <= inHowMuch)
	  mLastError = ERR_STREAM_WRITE_ERROR;
	return * (I_OStream*) this;
}