する質問をすることでしか得られない、回答やアドバイスがある。6PHPのGDで画像のリサイズをしているのですが、リサイズ後の画像が縦に伸びたり横に伸びたりでうまくいきません。やりたいこととしましては、プロフィール写真は160*200で、プライベート写真は250*200でリサイズしたいです。コードはネットで見つけたものを多少修正しています。以下にコードを記述しますので、どなたかご教授いただければと思います。$canvasHeight);}attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheck解決した方法0DmImageという別なライブラリを使って解決しました。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link0元の画像と同じ縦横の比(アスペクト比)を維持するためにはそれなりの計算が必要です。getContainSizeで計算していますが使い方がいまいち合っていないようです。アスペクト比を維持するにしましてもサムネイルの作成(リサイズ)の方法をどうするか検討する必要があるかと思います。最終的なサイズは決定している仕様かと思いますのでその前提で。要はリサイズする結果をどうするかということです。getContainSizeをCALLしてサイズを取得しているにも関わらず出来上がりのサイズを$diffWや$diffHにしています。アップロードの画像サイズとアスペクト比が同じかどうか確認されたほうがよろしいかと思います。現状では$diffWや$diffH設定が元画像が正方形ではない場合縦横同じサイズでリサイズされますので伸びたり縮んだりするかと思います。現状のgetContainSizeですとアスペクト比が異なるアップロード画像では「スキマ」できるかと思います。「スキマ」のできない「トリミング」も計算で可能です。何を基準にリサイズ(またはトリミング)するかということです。これは仕様の話かと思いますのでご確認下さい。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。09:22ご回答ありがとうございます。このような書き方にしたのは、プロフィール写真が160*200より小さいときはそのサイズを使用し、同様にプライベート写真が250*200より小さければそのサイズを使用するためです。$originalHeight);と記述していたのですが、縦横同じ長さの画像をアップすると、160*160にリサイズされてうまくいかなかったためです。ご回答ありがとうございます。リサイズされてうまくいかなかったためです。$originalHeightを比較する必要があると思います。どちらも小さい場合か、どちらかが小さい場合かなど考える必要はあるかと思います。元画像をそのまま使うのであれば画像処理をせず、copyで処理という手もあります。$dstPath);return;}をgetimagesize()の下辺りに入れたらどうでしょうか。$originalHeightを比較する必要があると思います。どちらも小さい場合か、どちらかが小さい場合かなど考える必要はあるかと思います。元画像をそのまま使うのであれば画像処理をせず、copyで処理という手もあります。getimagesize()の下辺りに入れたらどうでしょうか。10:39上記試してみましたが、規定サイズよりも小さいものはそのまま表示されました。ありがとうございます。何か良い方法はございますでしょうか?上司に相談したところ、「既存のプログラムを修正するのが難しいのであれば、別のライブラリを使うなど工夫して、作業してください。」と言われググっているのですが、同じようなやりかたしか見つけられませんでした。上記試してみましたが、規定サイズよりも小さいものはそのまま表示されました。ありがとうございます。上司に相談したところ、「既存のプログラムを修正するのが難しいのであれば、別のライブラリを使うなど工夫して、作業してください。見つけられませんでした。編集メソッドの処理を上記のように変更したのですが、変化はなかったです。メソッドの処理を上記のように変更したのですが、変化はなかったです。返しておりますのでアスペクト比が考慮されていません。200の場合うまく行っているのであればgetContainSizeの一部をコメントアウトして確認してみて下さい。アスペクト比が考慮されていません。10:48ご回答ありがとうございます。別な方法で解決しました。ご回答ありがとうございます。別な方法で解決しました。File()の挙動と、PHPのgetimagesizeについて解決済POSTで受け取った画像の拡張子を「jpeg」に変換したいです。頂いたご意見への回答は行っておりません。