サイズ200 * 130の画像を切り抜きたい画像が小さい場合は切り取る画像のサイズが異なる場合があります私たちは切り抜きません私はこの部分をどのように知っていますか画像の高さや高さを確認できますが、画像の中央からトリミングのものにぶつかってしまいます センターをクロップポイントとして保持し、外向きの作物とする方法を理解できません。画像を切り抜く中央からPHP
10
A
答えて
31
GDはバージョン4.3.6以降のすべてのPHPインストールにバンドルされていますので、可能性があります。ここで
はあなたが取る必要がある手順です...
- GD
imagecreatefrom*()
関数のいずれかを使用してイメージリソースを作成します。あなたが使用して1imagesx()
を使用して画像のサイズを決定し、あなたが - を扱っている画像の種類に依存し、
imagesy()
- は、あなたの作物が
imagecopy()
作物の座標を検索を使用して、次のアルゴリズムと作物を使用して座標決定しますhttps://gist.github.com/880506
-$width = imagesx($img);
$height = imagesy($img);
$centreX = round($width/2);
$centreY = round($height/2);
$cropWidth = 200;
$cropHeight = 130;
$cropWidthHalf = round($cropWidth/2); // could hard-code this but I'm keeping it flexible
$cropHeightHalf = round($cropHeight/2);
$x1 = max(0, $centreX - $cropWidthHalf);
$y1 = max(0, $centreY - $cropHeightHalf);
$x2 = min($width, $centreX + $cropWidthHalf);
$y2 = min($height, $centreY + $cropHeightHalf);
私のイメージ操作クラスを使用すること自由に感じ、それははるかに簡単にいくつかの側面を行う必要があります
$im = new ImageManipulator('/path/to/image');
$centreX = round($im->getWidth()/2);
$centreY = round($im->getHeight()/2);
$x1 = $centreX - 100;
$y1 = $centreY - 65;
$x2 = $centreX + 100;
$y2 = $centreY + 65;
$im->crop($x1, $y1, $x2, $y2); // takes care of out of boundary conditions automatically
$im->save('/path/to/cropped/image');
0
これは役立ちます。
function cropCentered($img, $w, $h)
{
$cx = $img->getWidth()/2;
$cy = $img->getHeight()/2;
$x = $cx - $w/2;
$y = $cy - $h/2;
if ($x < 0) $x = 0;
if ($y < 0) $y = 0;
return $img->crop($x, $y, $w, $h);
}
私はあなたのGDライブラリを使用していると仮定しています。 $ imgはGD画像、$ wと$ hはそれぞれ新しい画像に必要な幅と高さです。あなたのケースでは、$ w = 200、$ h = 130です。
1
ええ、なぜあなたはそれを難しい方法でやっていますか?ただ単に私がYにすることにより、トリミングしています量である私の$ IMAGESIZE [0] *を(9/16)、使用方法/ 2
$imageSize = getimagesize('thumbnail.png');
$croppedImage = imagecrop(imagecreatefrompng('thumbnail.png'), ['x' => 0, 'y' => ($imageSize[1]-$imageSize[0]*(9/16))/2, 'width' => $imageSize[0], 'height' => $imageSize[0]*(9/16)]);
通知をトリミングする量として、xとyの位置を設定します元の画像の高さから減算して作物量を求め、2で割ったものです。幅を同じにしたい場合は、同じ手順を実行します。
関連する問題
- 1. 中央の画像と切り抜く
- 2. div内の画像を中央に切り抜く
- 3. PHP - 画像を切り抜くには?
- 4. php image resize - 中央からサムネイルを切り抜いたか?
- 5. CSSを使用した画像の中央と切り抜き
- 6. C#で画像をアップロードした後、自動的に中央から画像を切り抜く方法は?
- 7. PHP画像上、下、左、右から切り抜く
- 8. jpeg画像からポリゴン画像を切り抜くJava
- 9. 画像を切り抜き、PHPでアップロード
- 10. ASP.NET C#:画像を切り抜く
- 11. C#で画像を切り抜く
- 12. プログラムで画像を切り抜く
- 13. Cで画像を切り抜く#
- 14. Javascriptで画像を切り抜く
- 15. CGImageRefで画像を切り抜く
- 16. 画像をCSSで切り抜く
- 17. 画像を手動で切り抜く
- 18. OpenCV C++で画像を切り抜く
- 19. キャンバス画像ソースの正確な中心を切り抜く
- 20. 画像を切り抜く/切り抜くことができません
- 21. ImageMagickを使用して画像からテキストフィールドを切り抜く
- 22. 内からいくつかの画像を切り抜き画像
- 23. PHPとJqueryの複数の画像を切り抜く
- 24. jpg画像をPHPでのみ切り抜く方法は?
- 25. ワードプレスのクラシファイドテーマからフロントエンドで画像を切り抜く方法
- 26. ユーザー入力から画像を切り抜く
- 27. 下からプログラムで画像を切り抜く
- 28. カメラ2から長方形を切り抜く画像
- 29. パスから画像を切り抜くには?
- 30. 画像から矩形領域を切り抜く画像を使用して
帽子が外れています。THanks – June
最初のアルゴリズムでは、どの変数がimagecopy()の正しいパラメータに対応するでしょうか? –
@ChrisHarrison https://gist.github.com/philBrown/880506#file-imagemanipulator-php-L185 – Phil