ポートレートを使用可能なフレーム画像にマージするコーディングを試みています。WideImage PHP Lib を使用することで、画像を操作できます。これが私のコードです。
//Load image from disk
$img = WideImage::load($fileName); //our character
$watermark = WideImage::load($framePath.'photo_frame.png'); //load frame picture
//crop img to fit into frame
$hWatermark = $watermark->getHeight();
$wWatermark = $watermark->getWidth();
$img = $img->resize($wWatermark, $hWatermark, "outside");
$hImg = $img->getHeight();
$wImg = $img->getWidth();
if($hImg > $hWatermark) {
$img = $img->crop(0, 0, $width = "100%", $height = $hWatermark);
}
if($wImg > $wWatermark) {
$img = $img->crop(0, 0, $width = $wWatermark, $height = "100%");
}
// place the frame override image
$new = $img->merge($watermark, $left = 0, $top = 0, $pct = 100);
//Result is a new image with our character in a frame
$new->output('jpg', 90);
上記のブロック コードを使用すると、新しい写真を作成できますが、顔が左上隅に近くないと、新しい写真は顔にピントが合いません。例:
顔を自動的に検出するコードを書く余裕はないと思いますが、ユーザーがコラージュする領域を選択できるようにする簡単な方法があります。この方法で HTML と js に実装するにはどうすればよいですか? お手伝いありがとうございます!