OLD | NEW |
1 // Copyright 2016 The PDFium Authors. All rights reserved. | 1 // Copyright 2016 The 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 #include <cstdint> | 5 #include <cstdint> |
6 | 6 |
7 #include "core/fpdfapi/parser/cpdf_stream.h" | 7 #include "core/fpdfapi/parser/cpdf_stream.h" |
8 #include "core/fpdfapi/parser/cpdf_stream_acc.h" | 8 #include "core/fpdfapi/parser/cpdf_stream_acc.h" |
9 #include "core/fxcodec/JBig2_DocumentContext.h" | 9 #include "core/fxcodec/JBig2_DocumentContext.h" |
10 #include "core/fxcodec/codec/ccodec_jbig2module.h" | 10 #include "core/fxcodec/codec/ccodec_jbig2module.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 uint32_t width = GetInteger(data); | 23 uint32_t width = GetInteger(data); |
24 uint32_t height = GetInteger(data + 4); | 24 uint32_t height = GetInteger(data + 4); |
25 size -= kParameterSize; | 25 size -= kParameterSize; |
26 data += kParameterSize; | 26 data += kParameterSize; |
27 | 27 |
28 std::unique_ptr<CFX_DIBitmap> bitmap(new CFX_DIBitmap); | 28 std::unique_ptr<CFX_DIBitmap> bitmap(new CFX_DIBitmap); |
29 if (!bitmap->Create(width, height, FXDIB_1bppRgb)) | 29 if (!bitmap->Create(width, height, FXDIB_1bppRgb)) |
30 return 0; | 30 return 0; |
31 | 31 |
32 std::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> stream( | 32 std::unique_ptr<CPDF_Object> stream(new CPDF_Stream); |
33 new CPDF_Stream); | |
34 stream->AsStream()->SetData(data, size); | 33 stream->AsStream()->SetData(data, size); |
35 CPDF_StreamAcc src_stream; | 34 CPDF_StreamAcc src_stream; |
36 src_stream.LoadAllData(stream->AsStream(), true); | 35 src_stream.LoadAllData(stream->AsStream(), true); |
37 | 36 |
38 CCodec_Jbig2Module module; | 37 CCodec_Jbig2Module module; |
39 CCodec_Jbig2Context jbig2_context; | 38 CCodec_Jbig2Context jbig2_context; |
40 std::unique_ptr<JBig2_DocumentContext> document_context; | 39 std::unique_ptr<JBig2_DocumentContext> document_context; |
41 FXCODEC_STATUS status = module.StartDecode( | 40 FXCODEC_STATUS status = module.StartDecode( |
42 &jbig2_context, &document_context, width, height, &src_stream, nullptr, | 41 &jbig2_context, &document_context, width, height, &src_stream, nullptr, |
43 bitmap->GetBuffer(), bitmap->GetPitch(), nullptr); | 42 bitmap->GetBuffer(), bitmap->GetPitch(), nullptr); |
44 | 43 |
45 while (status == FXCODEC_STATUS_DECODE_TOBECONTINUE) | 44 while (status == FXCODEC_STATUS_DECODE_TOBECONTINUE) |
46 status = module.ContinueDecode(&jbig2_context, nullptr); | 45 status = module.ContinueDecode(&jbig2_context, nullptr); |
47 return 0; | 46 return 0; |
48 } | 47 } |
OLD | NEW |