Imagick показывает URL сценария вместо изображения - PullRequest
0 голосов
/ 07 апреля 2010

В настоящее время я пытаюсь использовать imagick для генерации некоторых изображений без сохранения их на сервере, а затем для вывода в браузер. Моим методом выбора была магия изображений с расширением imagick для php. Я прочитал документацию, и я уверен, что пакет установлен на моей машине (Windows XP, с xampp). класс установлен

imagick module  enabled 
imagick module version  2.0.0-alpha 
imagick classes     Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator 
ImageMagick version     ImageMagick 6.3.3 04/21/07 Q16 http://www.imagemagick.org 
ImageMagick release date    04/21/07 
ImageMagick Number of supported formats:    164 
ImageMagick Supported formats   A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DFONT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FRACTAL, FTS, G, G3, GIF, GIF87, GRADIENT, GRAY, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, INFO, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MSVG, MTV, MVG, NULL, O, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV

это из phpinfo, так что я знаю, что он установлен, дело в том, что когда я пытаюсь сгенерировать изображение и сохранить его, оно работает безупречно, но когда я пытаюсь вывести изображение напрямую, я получаю URL скрипта изображение

  $draw = new ImagickDraw();

    $draw->setFont('AnkeCalligraph.TTF');
    $draw->setFontSize(52);

    $draw->annotation(110, 110, "Hello World!");
    $draw->annotation(50, 220, "Hello World!");
    $canvas = new Imagick('./pictures/test_live.PNG');
    $canvas->drawImage($draw);
    $canvas->setImageFormat('png');
    header("Content-Type: image/png");
    echo $canvas;

это код, который используется. если я использую writeimage, то файл на сервере создается без проблем. у кого-нибудь есть идеи, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

браузер (как правило, это делает Firefox) отображение URL-адреса вместо содержимого изображения часто вызвано недействительным изображением - т.е. при отправке заголовков HTTP, которые сообщают браузеру, что содержимоеможет интерпретироваться как изображение, но содержимое не может интерпретироваться как изображение.

Если ваш код правильно строит изображение при записи его в файл, проблема может быть вызвана отправкой вывода, который не 't принадлежит к изображению.

Убедитесь, что у нет вывода, кроме изображения - даже пробела до или после тегов PHP.

0 голосов
/ 07 апреля 2010

нашел решение ... вместо echo $canvas; использование echo $canvas->getImageBlob(); отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...