mirror of
https://github.com/spacedriveapp/spacedrive
synced 2024-07-04 12:13:27 +00:00
Fix pdf thumbs having incorrect colors (#1826)
Fix BGR being interpreted as RGB when generation pdf thumbs - Disabled some pdf render configs for better performance
This commit is contained in:
parent
d0f318bf2b
commit
2f01b21b3d
|
@ -10,7 +10,10 @@ use crate::{
|
|||
};
|
||||
use image::DynamicImage;
|
||||
use once_cell::sync::Lazy;
|
||||
use pdfium_render::prelude::{PdfRenderConfig, Pdfium};
|
||||
use pdfium_render::{
|
||||
color::PdfColor,
|
||||
prelude::{PdfPageRenderRotation, PdfRenderConfig, Pdfium},
|
||||
};
|
||||
use tracing::error;
|
||||
|
||||
// This path must be relative to the running binary
|
||||
|
@ -52,18 +55,26 @@ static PDFIUM_LIB: Lazy<String> = Lazy::new(|| {
|
|||
})
|
||||
});
|
||||
|
||||
static PORTRAIT_CONFIG: Lazy<PdfRenderConfig> = Lazy::new(|| {
|
||||
PdfRenderConfig::new()
|
||||
.set_target_width(PDF_PORTRAIT_RENDER_WIDTH)
|
||||
.render_form_data(false)
|
||||
fn thumbnail_config(config: PdfRenderConfig) -> PdfRenderConfig {
|
||||
// From: https://github.com/ajrcarey/pdfium-render/blob/82c10b2d59b04a8413acd31892eb28822e60e06a/src/render_config.rs#L159
|
||||
config
|
||||
.rotate(PdfPageRenderRotation::None, false)
|
||||
.use_print_quality(false)
|
||||
.set_image_smoothing(false)
|
||||
.render_annotations(false)
|
||||
.render_form_data(false)
|
||||
// Required due to: https://github.com/ajrcarey/pdfium-render/issues/119
|
||||
.set_reverse_byte_order(false)
|
||||
.set_clear_color(PdfColor::new(0, 0, 0, 0))
|
||||
.clear_before_rendering(true)
|
||||
}
|
||||
|
||||
static PORTRAIT_CONFIG: Lazy<PdfRenderConfig> = Lazy::new(|| {
|
||||
thumbnail_config(PdfRenderConfig::new().set_target_width(PDF_PORTRAIT_RENDER_WIDTH))
|
||||
});
|
||||
|
||||
static LANDSCAPE_CONFIG: Lazy<PdfRenderConfig> = Lazy::new(|| {
|
||||
PdfRenderConfig::new()
|
||||
.set_target_width(PDF_LANDSCAPE_RENDER_WIDTH)
|
||||
.render_form_data(false)
|
||||
.render_annotations(false)
|
||||
thumbnail_config(PdfRenderConfig::new().set_target_width(PDF_LANDSCAPE_RENDER_WIDTH))
|
||||
});
|
||||
|
||||
pub struct PdfHandler {}
|
||||
|
|
Loading…
Reference in a new issue