OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include <setjmp.h> | 7 #include <setjmp.h> |
8 | 8 |
9 #include "../../../include/fxcrt/fx_basic.h" | 9 #include "../../../include/fxcrt/fx_basic.h" |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 } BmpFileHeader, *BmpFileHeaderPtr; | 40 } BmpFileHeader, *BmpFileHeaderPtr; |
41 typedef struct tagBmpCoreHeader { | 41 typedef struct tagBmpCoreHeader { |
42 FX_DWORD bcSize; | 42 FX_DWORD bcSize; |
43 FX_WORD bcWidth; | 43 FX_WORD bcWidth; |
44 FX_WORD bcHeight; | 44 FX_WORD bcHeight; |
45 FX_WORD bcPlanes; | 45 FX_WORD bcPlanes; |
46 FX_WORD bcBitCount; | 46 FX_WORD bcBitCount; |
47 } BmpCoreHeader, *BmpCoreHeaderPtr; | 47 } BmpCoreHeader, *BmpCoreHeaderPtr; |
48 typedef struct tagBmpInfoHeader { | 48 typedef struct tagBmpInfoHeader { |
49 FX_DWORD biSize; | 49 FX_DWORD biSize; |
50 FX_INT32» biWidth; | 50 int32_t» biWidth; |
51 FX_INT32» biHeight; | 51 int32_t» biHeight; |
52 FX_WORD biPlanes; | 52 FX_WORD biPlanes; |
53 FX_WORD biBitCount; | 53 FX_WORD biBitCount; |
54 FX_DWORD biCompression; | 54 FX_DWORD biCompression; |
55 FX_DWORD biSizeImage; | 55 FX_DWORD biSizeImage; |
56 FX_INT32» biXPelsPerMeter; | 56 int32_t» biXPelsPerMeter; |
57 FX_INT32» biYPelsPerMeter; | 57 int32_t» biYPelsPerMeter; |
58 FX_DWORD biClrUsed; | 58 FX_DWORD biClrUsed; |
59 FX_DWORD biClrImportant; | 59 FX_DWORD biClrImportant; |
60 } BmpInfoHeader, *BmpInfoHeaderPtr; | 60 } BmpInfoHeader, *BmpInfoHeaderPtr; |
61 #pragma pack() | 61 #pragma pack() |
62 typedef struct tag_bmp_decompress_struct bmp_decompress_struct; | 62 typedef struct tag_bmp_decompress_struct bmp_decompress_struct; |
63 typedef bmp_decompress_struct *bmp_decompress_struct_p; | 63 typedef bmp_decompress_struct *bmp_decompress_struct_p; |
64 typedef bmp_decompress_struct_p *bmp_decompress_struct_pp; | 64 typedef bmp_decompress_struct_p *bmp_decompress_struct_pp; |
65 struct tag_bmp_decompress_struct { | 65 struct tag_bmp_decompress_struct { |
66 jmp_buf jmpbuf; | 66 jmp_buf jmpbuf; |
67 FX_LPSTR err_ptr; | 67 FX_LPSTR err_ptr; |
68 void (*_bmp_error_fn)(bmp_decompress_struct_p gif_ptr
, FX_LPCSTR err_msg); | 68 void (*_bmp_error_fn)(bmp_decompress_struct_p gif_ptr
, FX_LPCSTR err_msg); |
69 | 69 |
70 void* context_ptr; | 70 void* context_ptr; |
71 | 71 |
72 BmpFileHeaderPtr bmp_header_ptr; | 72 BmpFileHeaderPtr bmp_header_ptr; |
73 BmpInfoHeaderPtr bmp_infoheader_ptr; | 73 BmpInfoHeaderPtr bmp_infoheader_ptr; |
74 FX_INT32» » width; | 74 int32_t» » width; |
75 FX_INT32» » height; | 75 int32_t» » height; |
76 FX_DWORD compress_flag; | 76 FX_DWORD compress_flag; |
77 FX_INT32» » components; | 77 int32_t» » components; |
78 FX_INT32» » src_row_bytes; | 78 int32_t» » src_row_bytes; |
79 FX_INT32» » out_row_bytes; | 79 int32_t» » out_row_bytes; |
80 FX_LPBYTE out_row_buffer; | 80 FX_LPBYTE out_row_buffer; |
81 FX_WORD bitCounts; | 81 FX_WORD bitCounts; |
82 FX_DWORD color_used; | 82 FX_DWORD color_used; |
83 FX_BOOL imgTB_flag; | 83 FX_BOOL imgTB_flag; |
84 FX_INT32» » pal_num; | 84 int32_t» » pal_num; |
85 FX_INT32» » pal_type; | 85 int32_t» » pal_type; |
86 FX_DWORD* pal_ptr; | 86 FX_DWORD* pal_ptr; |
87 FX_DWORD data_size; | 87 FX_DWORD data_size; |
88 FX_DWORD img_data_offset; | 88 FX_DWORD img_data_offset; |
89 FX_DWORD img_ifh_size; | 89 FX_DWORD img_ifh_size; |
90 FX_INT32» » row_num; | 90 int32_t» » row_num; |
91 FX_INT32» » col_num; | 91 int32_t» » col_num; |
92 FX_INT32» » dpi_x; | 92 int32_t» » dpi_x; |
93 FX_INT32» » dpi_y; | 93 int32_t» » dpi_y; |
94 #ifdef BMP_SUPPORT_BITFIELD | 94 #ifdef BMP_SUPPORT_BITFIELD |
95 FX_DWORD mask_red; | 95 FX_DWORD mask_red; |
96 FX_DWORD mask_green; | 96 FX_DWORD mask_green; |
97 FX_DWORD mask_blue; | 97 FX_DWORD mask_blue; |
98 #endif | 98 #endif |
99 | 99 |
100 FX_BOOL (*_bmp_get_data_position_fn)(bmp_decompress_stru
ct_p bmp_ptr, FX_DWORD cur_pos); | 100 FX_BOOL (*_bmp_get_data_position_fn)(bmp_decompress_stru
ct_p bmp_ptr, FX_DWORD cur_pos); |
101 void» » » (*_bmp_get_row_fn)(bmp_decompress_struct_p bmp_p
tr, FX_INT32 row_num, FX_LPBYTE row_buf); | 101 void» » » (*_bmp_get_row_fn)(bmp_decompress_struct_p bmp_p
tr, int32_t row_num, FX_LPBYTE row_buf); |
102 FX_LPBYTE next_in; | 102 FX_LPBYTE next_in; |
103 FX_DWORD avail_in; | 103 FX_DWORD avail_in; |
104 FX_DWORD skip_size; | 104 FX_DWORD skip_size; |
105 FX_INT32» » decode_status; | 105 int32_t» » decode_status; |
106 }; | 106 }; |
107 void _bmp_error(bmp_decompress_struct_p bmp_ptr, FX_LPCSTR err_msg); | 107 void _bmp_error(bmp_decompress_struct_p bmp_ptr, FX_LPCSTR err_msg); |
108 bmp_decompress_struct_p _bmp_create_decompress(); | 108 bmp_decompress_struct_p _bmp_create_decompress(); |
109 void _bmp_destroy_decompress(bmp_decompress_struct_pp bmp_ptr_ptr); | 109 void _bmp_destroy_decompress(bmp_decompress_struct_pp bmp_ptr_ptr); |
110 FX_INT32 _bmp_read_header(bmp_decompress_struct_p bmp_ptr); | 110 int32_t _bmp_read_header(bmp_decompress_struct_p bmp_ptr); |
111 FX_INT32 _bmp_decode_image(bmp_decompress_struct_p bmp_ptr); | 111 int32_t _bmp_decode_image(bmp_decompress_struct_p bmp_ptr); |
112 FX_INT32 _bmp_decode_rgb(bmp_decompress_struct_p bmp_ptr); | 112 int32_t _bmp_decode_rgb(bmp_decompress_struct_p bmp_ptr); |
113 FX_INT32 _bmp_decode_rle8(bmp_decompress_struct_p bmp_ptr); | 113 int32_t _bmp_decode_rle8(bmp_decompress_struct_p bmp_ptr); |
114 FX_INT32 _bmp_decode_rle4(bmp_decompress_struct_p bmp_ptr); | 114 int32_t _bmp_decode_rle4(bmp_decompress_struct_p bmp_ptr); |
115 FX_LPBYTE _bmp_read_data(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE* des_buf_pp,
FX_DWORD data_size); | 115 FX_LPBYTE _bmp_read_data(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE* des_buf_pp,
FX_DWORD data_size); |
116 void _bmp_save_decoding_status(bmp_decompress_struct_p bmp_ptr, FX_INT32 status)
; | 116 void _bmp_save_decoding_status(bmp_decompress_struct_p bmp_ptr, int32_t status); |
117 void _bmp_input_buffer(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE src_buf, FX_DW
ORD src_size); | 117 void _bmp_input_buffer(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE src_buf, FX_DW
ORD src_size); |
118 FX_DWORD _bmp_get_avail_input(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE* avial_
buf_ptr); | 118 FX_DWORD _bmp_get_avail_input(bmp_decompress_struct_p bmp_ptr, FX_LPBYTE* avial_
buf_ptr); |
119 #define BMP_PTR_NOT_NULL(ptr,bmp_ptr) if(ptr == NULL){
\ | 119 #define BMP_PTR_NOT_NULL(ptr,bmp_ptr) if(ptr == NULL){
\ |
120 _bmp_error(bmp_ptr,"Out Of Memory");\ | 120 _bmp_error(bmp_ptr,"Out Of Memory");\ |
121 return 0; \ | 121 return 0; \ |
122 } | 122 } |
123 typedef struct tag_bmp_compress_struct bmp_compress_struct; | 123 typedef struct tag_bmp_compress_struct bmp_compress_struct; |
124 typedef bmp_compress_struct *bmp_compress_struct_p; | 124 typedef bmp_compress_struct *bmp_compress_struct_p; |
125 typedef bmp_compress_struct_p *bmp_compress_struct_pp; | 125 typedef bmp_compress_struct_p *bmp_compress_struct_pp; |
126 struct tag_bmp_compress_struct { | 126 struct tag_bmp_compress_struct { |
127 BmpFileHeader file_header; | 127 BmpFileHeader file_header; |
128 BmpInfoHeader info_header; | 128 BmpInfoHeader info_header; |
129 FX_LPBYTE src_buf; | 129 FX_LPBYTE src_buf; |
130 FX_DWORD src_pitch; | 130 FX_DWORD src_pitch; |
131 FX_DWORD src_row; | 131 FX_DWORD src_row; |
132 FX_BYTE» » » src_bpp; | 132 uint8_t» » » src_bpp; |
133 FX_DWORD src_width; | 133 FX_DWORD src_width; |
134 FX_BOOL src_free; | 134 FX_BOOL src_free; |
135 FX_DWORD* pal_ptr; | 135 FX_DWORD* pal_ptr; |
136 FX_WORD pal_num; | 136 FX_WORD pal_num; |
137 #ifdef BMP_SUPPORT_BITFIELD | 137 #ifdef BMP_SUPPORT_BITFIELD |
138 FX_BYTE» » » bit_type; | 138 uint8_t» » » bit_type; |
139 #endif | 139 #endif |
140 }; | 140 }; |
141 bmp_compress_struct_p _bmp_create_compress(); | 141 bmp_compress_struct_p _bmp_create_compress(); |
142 void _bmp_destroy_compress(bmp_compress_struct_p bmp_ptr); | 142 void _bmp_destroy_compress(bmp_compress_struct_p bmp_ptr); |
143 FX_BOOL _bmp_encode_image(bmp_compress_struct_p bmp_ptr, FX_LPBYTE& dst_buf, FX_
DWORD& dst_size); | 143 FX_BOOL _bmp_encode_image(bmp_compress_struct_p bmp_ptr, FX_LPBYTE& dst_buf, FX_
DWORD& dst_size); |
OLD | NEW |