Prechádzať zdrojové kódy

LibPDF: Implement /Mask support with stream object argument

Nico Weber 1 rok pred
rodič
commit
b63eb4a4dd
1 zmenil súbory, kde vykonal 2 pridanie a 1 odobranie
  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");
         }