2016-11-07 8 views
0

Jcropコンテナに透明な背景を持つPNGファイルを選択すると、黒い背景が表示されます。作って保存すると、.pngというファイルに保存されますが、作物コンテナに表示されているように黒い背景があります。PHP&JS - Jcrop - 選択したPNG画像に黒い背景があります

JS:画像を保存するための

$('#image').Jcrop({ 
    bgColor: 'transparent', 
    aspectRatio: 1, 
    minSize: [180, 180], 
    maxSize: [20000, 20000], 
    onSelect: updateCoords, 
    onChange: updateCoords, 
    boxWidth: $('.modal-body', $imageUploadModal).width() 
}); 

はPHP:

$target_w = $target_h = 400; 

$src = $request->request->get('src'); 
$x = $request->request->get('x'); 
$y = $request->request->get('y'); 
$w = $request->request->get('w'); 
$h = $request->request->get('h'); 

ini_set('memory_limit', -1); 

$img_r = imagecreatefrompng($src); 
imagealphablending($img_r, true); 

$dst_r = ImageCreateTrueColor($target_w, $target_h); 

imagecopyresampled($dst_r, $img_r, 0, 0, $x, $y, $target_w, $target_h, $w, $h); 

$randomStringGenerator = new RandomStringGenerator(); 
$filename = '/profile-pictures/'.$randomStringGenerator->generate(50).'.png'; 

imagepng($dst_r, $filename); 
imagedestroy($img_r); 
imagedestroy($dst_r); 

ini_restore('memory_limit'); 

私が失われる可能性がどのような任意のアイデア? bgColor私は解決策が何も影響を及ぼさず、問題を解決していないため、複数の回答を見てきました。

+1

を持っていると言う**コピー&ペースト**あなたのコードは、タイプミスを避けるためにしてください。 JSに見積もりがないため、無効です。 – Chris

+0

あなたのコード(引用符がない場合)は次のようにする必要があります:https://github.com/tapmodo/Jcrop/issues/13 – DOZ

+0

ああ、申し訳ありませんが間違って削除された方法は、とにかくこれは問題ではありません。 @DOZ 'transparent'は不運にも機能していません –

答えて

1

imagecreatetruecolor

引用例は、最初のユーザーに与えたのマニュアルページにノートを拠出ので、それは次のようになります。

あなたが背景 がどこにあるか透明 PNGイメージを作成したい場合完全にトランスペアレントで、すべての描画操作がこの上に発生する場合は、 を実行してから、次の操作を行います。

「Richard Davey」

あなたがトリミングされた画像をコピーするには、あなたの「ホスト」画像をcreatre
<?php 
    $png = imagecreatetruecolor(800, 600); 
    imagesavealpha($png, true); 

    $trans_colour = imagecolorallocatealpha($png, 0, 0, 0, 127); 
    imagefill($png, 0, 0, $trans_colour); 

    $red = imagecolorallocate($png, 255, 0, 0); 
    imagefilledellipse($png, 400, 300, 400, 300, $red); 

    header("Content-type: image/png"); 
    imagepng($png); 
?> 

意味では、あなたはそれがしてください透明な背景

関連する問題