diff --git a/lib/load_bmp.rb b/lib/load_bmp.rb index 9b99d964..48320fdb 100644 --- a/lib/load_bmp.rb +++ b/lib/load_bmp.rb @@ -39,7 +39,7 @@ module LoadBmp bands = header_data[:bpp] / 8 end - image = Vips::Image.new_from_memory(final_pixel_data, header_data[:width], header_data[:height], bands, :uchar) + image = Vips::Image.new_from_memory_copy(final_pixel_data, header_data[:width], header_data[:height], bands, :uchar) image = image.flip(:vertical) if header_data[:orientation] == -1 diff --git a/lib/load_ico.rb b/lib/load_ico.rb index 633bdbdf..1eeb5ea9 100644 --- a/lib/load_ico.rb +++ b/lib/load_ico.rb @@ -202,13 +202,13 @@ module LoadIco return nil unless pixel_data_string.bytesize == expected_bytes && expected_bytes.positive? - Vips::Image.new_from_memory( + Vips::Image.new_from_memory_copy( pixel_data_string, dib_width, image_pixel_height, 4, :uchar - ) + ).copy(interpretation: :srgb) end # rubocop:enable Metrics end diff --git a/lib/templates/detect_fields.rb b/lib/templates/detect_fields.rb index dae0ce1e..db61bc35 100755 --- a/lib/templates/detect_fields.rb +++ b/lib/templates/detect_fields.rb @@ -193,7 +193,7 @@ module Templates data, width, height = page.render_to_bitmap(size_key => size) - Vips::Image.new_from_memory(data, width, height, 4, :uchar) + Vips::Image.new_from_memory_copy(data, width, height, 4, :uchar) end def sort_fields(fields, y_threshold: 0.01) diff --git a/lib/templates/process_document.rb b/lib/templates/process_document.rb index 6e1963cc..9db405f6 100644 --- a/lib/templates/process_document.rb +++ b/lib/templates/process_document.rb @@ -107,7 +107,7 @@ module Templates bytes, width, height = doc_page.render_to_bitmap(width: MAX_WIDTH) - image = Vips::Image.new_from_memory(bytes, width, height, 4, :uchar) + image = Vips::Image.new_from_memory_copy(bytes, width, height, 4, :uchar) Concurrent::Promise.execute(executor: pool) { build_and_upload_blob(image, page_number) } ensure @@ -201,7 +201,7 @@ module Templates doc_page.close - image = Vips::Image.new_from_memory(bytes, width, height, 4, :uchar) + image = Vips::Image.new_from_memory_copy(bytes, width, height, 4, :uchar) blob = build_and_upload_blob(image, page_number, PREVIEW_FORMAT)