imagick komut url göstermek yerine görüntü

2 Cevap php

Şu anda ben benim seçim yöntemi php için imagick uzantılı görüntü sihirli oldu, sunucu üzerinde bunları kaydetme ve sonra tarayıcıya çıktısı olmadan bazı görüntüler oluşturmak için imagick kullanmaya çalışıyorum. Ben belgeleri okudum, ve ben paketi (xampp ile windows xp,) benim makinede yüklü olduğundan emin değilim. sınıf yüklenir

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

Bu yüzden sorunsuz çalışır, ben bir görüntü oluşturmak ve kaydetmek için çalıştığınızda şey, i yüklü biliyorum, ama doğrudan çıkışına görüntüyü çalıştığınızda, ben bir görüntü olarak komut url almak phpinfo dan

  $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;

Bu kullanılan koddur. i WriteImage kullanırsanız, daha sonra sunucu üzerinde dosya herhangi bir sorun ile oluşturulur. Herkes yanlış ne yapıyorum herhangi bir fikir var mı?

2 Cevap

Bunun yerine, echo $canvas; kullanmanın çözeltisi ... Bulunan echo $canvas->getImageBlob(); mükemmel bir şekilde çalışıyor

Içerik tarayıcı söylemek HTTP başlıklarını gönderirken yani içerik bir görüntünün olarak yorumlanması gerekir, ama - Tarayıcı (typically, Firefox does that) URL gösteren yerine görüntünün içeriği sık sık geçersiz görüntü neden olur bir görüntü olarak yorumlanamaz.

Bir dosyaya yazma zaman kod düzgün görüntü bina varsa, sahip problem görüntüye ait olmayan çıkış göndererek neden olabilir.

Emin olun don't have any other output than the image - bile bir boşluk PHP etiketlerinin önce veya sonra.