0

「jcrop」という名前のプラグインを使用しています。これは非常に優れています。ここで確認できます。

http://howhack.com/crop/demos/crop2.php

問題は、このプラグインが透明な背景を持つ png をサポートしていないことです。

背景が透明なpngをサポートするjavascript/jQueryに同様のスクリプト/プラグインはありますか?

アスペクト比 16:9 のこの長方形が必要で、最終的な画像は常に 640x360 です。そのため、この「jcrop」を使用しようとしています。

4

2 に答える 2

6

プラグインがPHP経由でサーバー上で画像編集を行うと仮定していますか?その場合、PNG画像のアルファ透明度を維持するためにいくつかの特別な呼び出しを行う必要があります。

$x = $_GET["x"];
$y = $_GET["y"];
$w = $_GET["w"];
$h = $_GET["h"];

// Load the original image.
$img = imagecreatefrompng($img_path);
imagealphablending($img, true);

// Create a blank canvas for the cropped image.
$img_cropped = imagecreatetruecolor($w, $h);
imagesavealpha($img_cropped, true);
imagealphablending($img_cropped, false);
$transparent = imagecolorallocatealpha($img_cropped, 0, 0, 0, 127);
imagefill($img_cropped, 0, 0, $transparent);

// Crop the image and store the data on the blank canvas.
imagecopyresampled($img_cropped, $img, 0, 0, $x, $y, $w, $h, $w, $h); // or imagecopy()

// Save the image.
imagepng($img_cropped, "image_cropped.png", 2);

// Free memory.
imagedestroy($img);
imagedestroy($img_cropped);

これは、ここでのPHPのimagecopyresampled()の説明で数回触れられています。

于 2011-09-09T23:25:10.930 に答える
0

キャンバスを使って非常に簡単に行うことができます。保存したい場合は、生のキャンバスデータを郵便でサーバーに送信するだけですか? http://www.nihilogic.dk/labs/canvas2image/

ただし、このプラグインを使用する場合は、サーバーのphp構成を確認することをお勧めします。多くのサーバーは、デフォルトのphp構成の一部としてjpegとgifのみをサポートしています。これを確認したい場合は、このコードを含むphpファイルを作成してください。

phpinfo();

?>

次に、サーバーにアップロードして表示します。次のページで「libpng」を探す必要があります: http ://www.php.net/manual/en/image.requirements.php

于 2011-09-09T23:21:54.343 に答える