wordpressテック

【wordpress】gifファイルの透過部分が黒くなる事象について

スポンサーリンク

こんには、ブログ初心者のコモリ雲です。gifファイルをwordpressにアップロードすると透過部分が黒くなる現象にであったのでメモ書き。wordpress6.3.1での状況です。

アイキャッチ画像

症状

ロゴデータをgif形式で、透過部分を作成していたのですが、wordpressにアップロードすると透過部分が黒く反転してしまっていました。

失敗したブログロゴ

試してみたこと(失敗)

とある記事を参考に、サーバーのファイルシステムにアクセスし、wp-includesフォルダのmedia.phpを編集してみることに。

下記の「wp_imagecreatetruecolor」ファンクション(3,918行目あたり)を少し編集してみました。

function wp_imagecreatetruecolor( $width, $height ) {
	$img = imagecreatetruecolor( $width, $height );

	if ( is_gd_image( $img )
		&& function_exists( 'imagealphablending' ) && function_exists( 'imagesavealpha' )
	) {
		imagealphablending( $img, false );
		imagesavealpha( $img, true );
	}

	return $img;
}

黄色いマーカー部分を追記しました。

function wp_imagecreatetruecolor( $width, $height ) {
	$img = imagecreatetruecolor( $width, $height );

	if ( is_gd_image( $img )
		&& function_exists( 'imagealphablending' ) && function_exists( 'imagesavealpha' )
	) {
		if ( function_exists( 'imagecolortransparent' ) && function_exists( 'imagecolorallocatealpha' ) )
			imagecolortransparent( $img, imagecolorallocatealpha( $img, 0, 0, 0, 127 ) );
		imagealphablending( $img, false );
		imagesavealpha( $img, true );
	}

	return $img;
}

残念ながらwordpressがエラーを吐き、管理画面が動かない状況に。

編集前のmedia.phpファイルを再度アップロードして、元に戻しました。

結論として

私はおとなしくPNG形式で対応することにしました。

タイトルとURLをコピーしました