Fix meme generation for palette PNGs
Summary: Fixes T4125. Indexed / palette PNGs may fail to allocate a proper black for drawing an image border.
Test Plan: {F83066}
Reviewers: btrahan, asukhachev
Reviewed By: asukhachev
CC: aran
Maniphest Tasks: T4125
Differential Revision: https://secure.phabricator.com/D7604
This commit is contained in:
@@ -294,6 +294,15 @@ final class PhabricatorImageTransformer {
|
|||||||
$lower_text,
|
$lower_text,
|
||||||
$mime_type) {
|
$mime_type) {
|
||||||
$img = imagecreatefromstring($data);
|
$img = imagecreatefromstring($data);
|
||||||
|
|
||||||
|
// Some PNGs have color palettes, and allocating the dark border color
|
||||||
|
// fails and gives us whatever's first in the color table. Copy the image
|
||||||
|
// to a fresh truecolor canvas before working with it.
|
||||||
|
|
||||||
|
$truecolor = imagecreatetruecolor(imagesx($img), imagesy($img));
|
||||||
|
imagecopy($truecolor, $img, 0, 0, 0, 0, imagesx($img), imagesy($img));
|
||||||
|
$img = $truecolor;
|
||||||
|
|
||||||
$phabricator_root = dirname(phutil_get_library_root('phabricator'));
|
$phabricator_root = dirname(phutil_get_library_root('phabricator'));
|
||||||
$font_root = $phabricator_root.'/resources/font/';
|
$font_root = $phabricator_root.'/resources/font/';
|
||||||
$font_path = $font_root.'tuffy.ttf';
|
$font_path = $font_root.'tuffy.ttf';
|
||||||
|
|||||||
Reference in New Issue
Block a user