私は本当のカラーイメージを作成するために使用したスクリプトを持っています。私のPHPは真のカラーイメージを作成できません
しかし、サーバーを変更した後、新しいPHPインストールでイメージが表示されません。ここで
は一例です:http://www.europasprak.com/engine/system/utils/printBarImage.php?color=%239999FF&width=3&height=10
ソースコードは次のとおりです。
GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.5.2
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.50
WBMP Support enabled
XBM Support enabled
がUPDATE:私はコメントアウト
<?PHP
require_once("website.php");
$color = LibEnv::getEnvHttpGET("color");
$width = LibEnv::getEnvHttpGET("width");
$height = LibEnv::getEnvHttpGET("height");
$color = urldecode($color);
if ($color && $width > 0 && $height> 0) {
LibImage::printBarImage($color, $width, $height);
}
// Print a bar image
static function printBarImage($color, $width, $height) {
// Create a blank image
$image = imagecreatetruecolor($width, $height);
if (strlen($color) == 6) {
$color = "#" . $color;
}
$r = intval(substr($color, 1, 2), 16);
$g = intval(substr($color, 3, 2), 16);
$b = intval(substr($color, 5, 2), 16);
$color = imagecolorallocate($image, $r, $g, $b);
// Fill up the image background
imagefilledrectangle($image, 0, 0, $width, $height, $color);
// Header indicating the image type
header("Content-type:image/jpeg");
// Create the image in the best jpeg quality
imagejpeg($image, NULL, 100);
// Destroy the image
imagedestroy($image);
}
?>
私のPHPバージョン5.6.20情報を言うためにこれを持っています画像を出力し、既存の外部画像を追加してデバッグ:
// imagejpeg($image, NULL, 100);
$img=imagecreatefromjpeg("http://www.google.com/logos/doodles/2016/faten-hamamas-85th-birthday-4804306106580992-hp2x.jpg");
imagejpeg($img, NULL, 100);
問題は同じです。
おそらく私のGDセットアップには関係しませんが、コンテンツタイプに関係しています。
私は任意のBOM文字を削除:
tail --bytes=+4 lib/image.php
tail --bytes=+4 system/utils/printBarImage.php
は、私は別の文字セットを試してみました:
iconv -f ISO-8859-1 -t utf-8 ... -o ...
編集:私は私のGDライブラリをアップグレード:のerror_logを使用して
GD Support enabled
GD headers Version 2.2.4
GD library Version 2.2.4
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.7.1
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version unknown
PNG Support enabled
libPNG Version 1.6.28
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
()I $image = imagecreatetruecolor($width, $height);
関数呼び出しがリソースID#678を作成し、$color = imagecolorallocate($image, $r, $g, $b);
関数呼び出しは、6737049というカラーコードを返します。
この問題は同じですが、
imagejpeg($image, NULL, 100);
の代わりに別の機能を使用してみましたので、最初にimagepng($image);
を試してからimagegif($image);
を試しましたが、問題は同じままです。
私はheader("Content-type:image/jpeg");
をコメントアウトした場合、出力は次のようになります。ソースコードを����JFIF``��
:選択の
����JFIF``��<CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100
��C��C��
��
���}!1AQa"q2���#B��R��$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
���w!1AQaq"2�B���� #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?�@����(��
(��?�
私のブラウザはクロームです。
Firefoxで画像を開くと、The image ... cannot be displayed because it contains errors.
と表示されます。
編集:私はいくつかのエラー報告を追加し、ログを表示するには、このを持っていた:
PHP Parse error: imagepng(): gd-png error: cannot allocate libpng main struct
どのようなエラーが表示されますか? – timclutton
ログは空のままです。 – Stephane
コードの最後のサンプルがPHP 5でうまく動作します。 – Jocelyn