[wp-trac] [WordPress Trac] #45982: PDF thumbnails have a default black background
WordPress Trac
noreply at wordpress.org
Mon Dec 21 06:10:27 UTC 2020
#45982: PDF thumbnails have a default black background
--------------------------+------------------------------
Reporter: nebrekab | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Media | Version: 5.0.3
Severity: normal | Resolution:
Keywords: | Focuses:
--------------------------+------------------------------
Comment (by thatstevensguy):
If you want to just dump @jlambe's great solution at the end of your
themes functions.php, you will get errors about the namespace not being at
the start of the file, and correct me if I am wrong, but its also not good
practice to have more than one namespace per file.
In this case, the below less elegant version is working for me.
{{{#!php
<?php
/**
* Patch for black backgrounds on PDF's.
*
* https://core.trac.wordpress.org/ticket/45982
*/
require_once __DIR__ . '/../../../wp-includes/class-wp-image-editor.php';
require_once __DIR__ . '/../../../wp-includes/class-wp-image-editor-
imagick.php';
// phpcs:ignore PSR1.Classes.ClassDeclaration.MissingNamespace
final class ExtendedWpImageEditorImagick extends WP_Image_Editor_Imagick
{
/**
* Add properties to the image produced by Ghostscript to prevent
black PDF backgrounds.
*
* @return true|WP_error
*/
// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
protected function pdf_load_source()
{
$loaded = parent::pdf_load_source();
try {
$this->image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
$this->image->setBackgroundColor('#ffffff');
} catch (Exception $exception) {
error_log($exception->getMessage());
}
return $loaded;
}
}
/**
* Filters the list of image editing library classes to prevent black PDF
backgrounds.
*
* @param array $editors
* @return array
*/
add_filter('wp_image_editors', function (array $editors): array {
array_unshift($editors, ExtendedWpImageEditorImagick::class);
return $editors;
});
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/45982#comment:17>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list