質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1574閲覧

ファイルから画像を作成した画像を半分のサイズで表示させる方法

bird-toriyama

総合スコア25

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2016/12/29 13:51

phpでファイルから画像を作成するために
下記のようなコードを書きました。

しかし、作成した画像はレティナ対応のため
通常のサイズより縦・横ともに長さが2倍になっています。

下記のコードを変更して画像のサイズを縦横ともに半分にして
サイト上に表示するのにはどうすればよろしいでしょうか

//ファイルから画像作成 function createImg($imgfile) { $ext = substr(strrchr($imgfile,"."),1); $img = null; switch ($ext) { case "gif": $img = imagecreatefromgif($imgfile); break; case "png": $img = imagecreatefrompng($imgfile); break; case "jpg": case "jpeg": $img = imagecreatefromjpeg($imgfile); break; } return $img; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

下記のコードを変更して画像のサイズを縦横ともに半分にして

サイト上に表示するのにはどうすればよろしいでしょうか

出力時にHTML/CSSで幅を指定してはいかがでしょう。

投稿2016/12/29 15:58

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mpyw

2016/12/29 16:07

元のサイズが大した事ない場合はそれでもいいと思います。それなりに大きい場合は本当に縮小したほうが良さそうです。
kei344

2016/12/29 17:05

(デスクトップもありますが)レティナ対応が必要なデバイスのほとんどがモバイルのため、そもそもそこまで大きなサイズでは無いのではないか、と勝手に予想し回答しています。(通信量を減らすというのであれば、画像圧縮アルゴリズムを変えないと結局そこまで減りませんし・・・) mpywさんが「画像を半分のサイズ」を正攻法で回答されておられるので、少しずらした回答をしました。
guest

0

ベストアンサー

拡張子で判定しているあたりナンセンスなので,そこも直します。

php

1function createReducedImage($filename) 2{ 3 if (!$src = @imagecreatefromstring(file_get_contents($filename))) { 4 return false; 5 } 6 $src_x = imagesx($src); 7 $src_y = imagesy($src); 8 $dst_x = (int)ceil($src_x / 2); 9 $dst_y = (int)ceil($src_y / 2); 10 $dst = imagecreatetruecolor($dst_x, $dst_y); 11 imagealphablending($dst, false); 12 imagesavealpha($dst, true); 13 imagecopyresampled($dst, $src, 0, 0, 0, 0, $dst_x, $dst_y, $src_x, $src_y); 14 return $dst; 15}

投稿2016/12/29 15:12

編集2016/12/29 15:21
mpyw

総合スコア5223

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bird-toriyama

2017/01/24 10:27

大変遅くなりましたが、ご回答ありがとうございます。 いろいろ調べてみたところ、別の方法でうまくいきました。 ご回答が丁寧だったのでベストアンサーにさせていただきます。 今度ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問