OpenPNE のサムネイル作成で透過画像が壊れることへの対応 その2
以前、OpenPNE のサムネイル作成で透過画像が壊れることへの対応で書いたソースが不十分だったことが判明。特定の条件を満たす透過のあるGIF画像で透過関係で画像が壊れることがある
公式SNS内で相談が上がっていたことで発覚しました
修正が完了したので、ここでも報告しておく
webapp/lib/OpenPNE/Img.php の 275行目あたりから以下の部分に置き換え (2.12.1の場合の行数です。2.10系のときも似たような箇所があるので置き換えてください)
if ($trnprt_idx_s >= 0) { // 透過色が設定されている
// truecolor イメージを (256色)パレットイメージに変換
imagetruecolortopalette($output_gdimg, true, 256);
// 入力画像から透明色に指定してある色(RGBの配列)を取得する
$trnprt_color = imagecolorsforindex($source_gdimg, $trnprt_idx_s);
// 色の設定
$trnprt_idx_s = imagecolorallocate($output_gdimg,$trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
// 透明色(にする色)で塗りつぶす
imagefill($output_gdimg, 0, 0, $trnprt_idx_s );
// 透明色設定
imagecolortransparent($output_gdimg, $trnprt_idx_s);
} elseif ($this->output_format == 'png') { // PNG-24
開発サイドにも報告してあるので、そのうち取り込まれると思います
なお、画像関係ではほかにもバグを見つけており、現在追跡調査中。はっきりわかり、修正内容がはっきりしたらここでも報告予定
カテゴリ:
OpenPNE
,
Programing
,
サーバ管理
トラックバック
このブログ記事に対するトラックバックURL
http://fakelife.info/mt/system/mt-tb.cgi/99
コメントする