18e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 28e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener// Copyright 2006-2008 Adobe Systems Incorporated 38e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener// All Rights Reserved. 48e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener// 58e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener// NOTICE: Adobe permits you to use, modify, and distribute this file in 68e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener// accordance with the terms of the Adobe license agreement accompanying it. 78e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 88e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 98e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_simple_image.h#1 $ */ 108e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/* $DateTime: 2012/05/30 13:28:51 $ */ 118e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/* $Change: 832332 $ */ 128e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/* $Author: tknoll $ */ 138e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 148e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 158e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 168e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#ifndef __dng_simple_image__ 178e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#define __dng_simple_image__ 188e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 198e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 208e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 218e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#include "dng_auto_ptr.h" 228e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#include "dng_image.h" 238e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#include "dng_pixel_buffer.h" 248e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 258e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 268e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 278e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/// dng_image derived class with simple Trim and Rotate functionality. 288e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 298e8939fc10ad63576a2785ba1333a23726b7e164Florian Krienerclass dng_simple_image : public dng_image 308e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener { 318e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 328e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener protected: 338e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 348e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener dng_pixel_buffer fBuffer; 358e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 368e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener AutoPtr<dng_memory_block> fMemory; 378e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 388e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener dng_memory_allocator &fAllocator; 398e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 408e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener public: 418e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 428e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener dng_simple_image (const dng_rect &bounds, 438e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener uint32 planes, 448e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener uint32 pixelType, 458e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener dng_memory_allocator &allocator); 468e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 478e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual ~dng_simple_image (); 488e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 498e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual dng_image * Clone () const; 508e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 518e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener /// Setter for pixel type. 528e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 538e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual void SetPixelType (uint32 pixelType); 548e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 558e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener /// Trim image data outside of given bounds. Memory is not reallocated or freed. 568e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 578e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual void Trim (const dng_rect &r); 588e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 598e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener /// Rotate image according to orientation. 608e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 618e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual void Rotate (const dng_orientation &orientation); 628e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 638e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener /// Get the buffer for direct processing. (Unique to dng_simple_image.) 648e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 658e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener void GetPixelBuffer (dng_pixel_buffer &buffer) 668e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener { 678e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener buffer = fBuffer; 688e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener } 698e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 708e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener protected: 718e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 728e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener virtual void AcquireTileBuffer (dng_tile_buffer &buffer, 738e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener const dng_rect &area, 748e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener bool dirty) const; 758e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 768e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener }; 778e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 788e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 798e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 808e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener#endif 818e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener 828e8939fc10ad63576a2785ba1333a23726b7e164Florian Kriener/*****************************************************************************/ 83