瀏覽代碼

LibPDF: Implement /Mask support with stream object argument

Nico Weber 1 年之前
父節點
當前提交
b63eb4a4dd
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      Userland/Libraries/LibPDF/Renderer.cpp

+ 2 - 1
Userland/Libraries/LibPDF/Renderer.cpp

@@ -1221,7 +1221,8 @@ PDFErrorOr<void> Renderer::show_image(NonnullRefPtr<StreamObject> image)
     } else if (image_dict->contains(CommonNames::Mask)) {
         auto mask_object = TRY(image_dict->get_object(m_document, CommonNames::Mask));
         if (mask_object->is<StreamObject>()) {
-            return Error::rendering_unsupported_error("/Mask stream objects not yet implemented");
+            auto mask_bitmap = TRY(load_image(mask_object->cast<StreamObject>()));
+            TRY(apply_alpha_channel(image_bitmap.bitmap, mask_bitmap.bitmap));
         } else if (mask_object->is<ArrayObject>()) {
             return Error::rendering_unsupported_error("/Mask array objects not yet implemented");
         }