1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2019 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker #ifndef PUBLIC_FPDF_THUMBNAIL_H_ 6*3ac0a46fSAndroid Build Coastguard Worker #define PUBLIC_FPDF_THUMBNAIL_H_ 7*3ac0a46fSAndroid Build Coastguard Worker 8*3ac0a46fSAndroid Build Coastguard Worker #include <stdint.h> 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker // NOLINTNEXTLINE(build/include) 11*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfview.h" 12*3ac0a46fSAndroid Build Coastguard Worker 13*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 14*3ac0a46fSAndroid Build Coastguard Worker extern "C" { 15*3ac0a46fSAndroid Build Coastguard Worker #endif 16*3ac0a46fSAndroid Build Coastguard Worker 17*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 18*3ac0a46fSAndroid Build Coastguard Worker // Gets the decoded data from the thumbnail of |page| if it exists. 19*3ac0a46fSAndroid Build Coastguard Worker // This only modifies |buffer| if |buflen| less than or equal to the 20*3ac0a46fSAndroid Build Coastguard Worker // size of the decoded data. Returns the size of the decoded 21*3ac0a46fSAndroid Build Coastguard Worker // data or 0 if thumbnail DNE. Optional, pass null to just retrieve 22*3ac0a46fSAndroid Build Coastguard Worker // the size of the buffer needed. 23*3ac0a46fSAndroid Build Coastguard Worker // 24*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 25*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the decoded image data. 26*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer in bytes. 27*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 28*3ac0a46fSAndroid Build Coastguard Worker FPDFPage_GetDecodedThumbnailData(FPDF_PAGE page, 29*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 30*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen); 31*3ac0a46fSAndroid Build Coastguard Worker 32*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 33*3ac0a46fSAndroid Build Coastguard Worker // Gets the raw data from the thumbnail of |page| if it exists. 34*3ac0a46fSAndroid Build Coastguard Worker // This only modifies |buffer| if |buflen| is less than or equal to 35*3ac0a46fSAndroid Build Coastguard Worker // the size of the raw data. Returns the size of the raw data or 0 36*3ac0a46fSAndroid Build Coastguard Worker // if thumbnail DNE. Optional, pass null to just retrieve the size 37*3ac0a46fSAndroid Build Coastguard Worker // of the buffer needed. 38*3ac0a46fSAndroid Build Coastguard Worker // 39*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 40*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the raw image data. 41*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer in bytes. 42*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 43*3ac0a46fSAndroid Build Coastguard Worker FPDFPage_GetRawThumbnailData(FPDF_PAGE page, 44*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 45*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen); 46*3ac0a46fSAndroid Build Coastguard Worker 47*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 48*3ac0a46fSAndroid Build Coastguard Worker // Returns the thumbnail of |page| as a FPDF_BITMAP. Returns a nullptr 49*3ac0a46fSAndroid Build Coastguard Worker // if unable to access the thumbnail's stream. 50*3ac0a46fSAndroid Build Coastguard Worker // 51*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 52*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV 53*3ac0a46fSAndroid Build Coastguard Worker FPDFPage_GetThumbnailAsBitmap(FPDF_PAGE page); 54*3ac0a46fSAndroid Build Coastguard Worker 55*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 56*3ac0a46fSAndroid Build Coastguard Worker } 57*3ac0a46fSAndroid Build Coastguard Worker #endif 58*3ac0a46fSAndroid Build Coastguard Worker 59*3ac0a46fSAndroid Build Coastguard Worker #endif // PUBLIC_FPDF_THUMBNAIL_H_ 60