Преглед на файлове

LibPDF: Show a 'rendering unsupported' error for images with /Mask key

Nico Weber преди 1 година
родител
ревизия
4bd11c8eb4
променени са 2 файла, в които са добавени 8 реда и са изтрити 0 реда
  1. 1 0
      Userland/Libraries/LibPDF/CommonNames.h
  2. 7 0
      Userland/Libraries/LibPDF/Renderer.cpp

+ 1 - 0
Userland/Libraries/LibPDF/CommonNames.h

@@ -122,6 +122,7 @@
     X(Limits)                     \
     X(Linearized)                 \
     X(ML)                         \
+    X(Mask)                       \
     X(Matrix)                     \
     X(MediaBox)                   \
     X(MissingWidth)               \

+ 7 - 0
Userland/Libraries/LibPDF/Renderer.cpp

@@ -1198,6 +1198,13 @@ PDFErrorOr<void> Renderer::show_image(NonnullRefPtr<StreamObject> image)
                 image_bitmap->set_pixel(i, j, image_color);
             }
         }
+    } 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");
+        } else if (mask_object->is<ArrayObject>()) {
+            return Error::rendering_unsupported_error("/Mask array objects not yet implemented");
+        }
     }
 
     auto image_space = calculate_image_space_transformation(width, height);