aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
php
1if($mokuteki_size[0]>$mokuteki_size[1]){ 2 $w2 = $img_source_size[0]; 3 $h2 = $mokuteki_size[0]; 4} elseif($mokuteki_size[0]<$mokuteki_size[1]) { 5 $w2 = $img_source_size[1]; 6 $h2 = $mokuteki_size[1]; 7}
提示されているソースコードの上記の部分の $h2
の値は以下と同値に見えます。
php
1$h2 = max(explode('-', $mokuteki_size));
つまり、'1200-600'
としても '600-1200'
としても $h2
は 1200
になります。
まぁ、それは良いとして、リサイズ後の画像の幅は縮尺が同じであれば $src_width * ($h2 / $src_height);
として求める事ができますので、全体のコードは以下の様になります。
php
1<?php 2 3function imgconverter($img_source, $mokuteki_size){ 4 $img = imagecreatefromjpeg($img_source); 5 imagepalettetotruecolor($img); 6 7 [$src_width, $src_height] = array_slice(getimagesize($img_source), 0, 2); 8 $h2 = max(explode('-', $mokuteki_size)); 9 $w2 = $src_width * ($h2 / $src_height); 10 11 $canvas = imagecreatetruecolor($w2, $h2); 12 imagecopyresampled($canvas, $img, 0, 0, 0, 0, $w2, $h2, $src_width, $src_height); 13 14 ob_start(); 15 imagejpeg($canvas); 16 $result = base64_encode(ob_get_contents()); 17 ob_end_clean(); 18 19 imagedestroy($img); imagedestroy($canvas); 20 21 return '<img src="data:image/jpeg;base64,'.$result.'">'; 22} 23 24$img_source = 'sample.jpg'; 25echo imgconverter($img_source, '1200-600');
投稿2021/10/31 05:03
総合スコア19874
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 07:54 編集
2021/10/31 07:56
2021/10/31 08:02