縮小画像が表示されません

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

縮小画像が表示されません

投稿記事 by bcacsato » 2005年12月13日(火) 13:35

画像ファイルのアップロードに関して教えて下さい。

コンテンツマネージャーより画像ファイルをアップロードしたのですが、
表示したページのサムネイル画像が「×」印となって表示されません。
コンテンツマネージャー上でも画像は「×」印となってしまいます。

しかし、クリックして実寸の画像を表示するとちゃんと表示されます。
(URLの末尾の「w=80」の部分を削除すると表示されます。)

この現象について調べたところ、どうやら、サイズが大きいjpg画像の場合、
このようになるようです(ファイルサイズではなくピクセル数)。
今回のケースは、ファイルサイズは50KB程度ですが、
ピクセル数は1233×1746でした。

ピクセル数が大きいと、縮小画像が表示されなくなってしまう仕様なのでしょうか?
それとも、私が何か手順を間違っているのでしょうか?

恐れ入りますがご教授お願いいたします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 縮小画像が表示されません

投稿記事 by webmaster » 2005年12月18日(日) 09:16

 webmasterです。
 大変申し訳ありません、ご質問に気づくのが遅れてしまいました。m(_ _;)m
 メールでのご連絡、お手数をおかけ致しました。

 ご質問の件について、当方環境にて 2304*1728ドットのjpg画像(画質30)を
アップロードしてみたところ、問題なく表示することができました。
 ファイルサイズは270KBです。

 画像の拡大縮小中は、元画像のファイルサイズではなく画像の縦横の大きさに
よって必要とするメモリが増える為、そこでメモリ不足になってエラーになっている
可能性が高いと思います。

 php.ini で memory_limit を増やして頂くか、php.iniの編集権限が無い場合、
.htaccessに次の行を加えてください。

php_value memory_limit 30M

 「30M」の部分は、必要に応じたサイズを指定して下さい。
 (ちなみに30Mは結構でかいです)

 画像処理ライブラリGDが内部で24bit(TrueColor)処理を行っているのであれば、
最低でも1ピクセル当たり24bitのメモリを必要とする為、

 1233×1746×24[bit] / ( 8[bit] × 1024[バイト] ) = 6307[KB]

 で、6Mバイト以上のメモリを必要とする為、

php_value memory_limit 10M

 程度の指定で大丈夫かと思います。
 まずは現在の memory_limit の指定値を、phpinfo() などでご確認頂くと
現状確認になるかもしれません。

 ご不明点はまたいつでもご連絡下さい。
 今回は回答が遅れてしまい、申し訳ありませんでした。m(_ _)m

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

投稿記事 by bcacsato » 2005年12月19日(月) 10:47

ご回答ありがとうございました。

> php.ini で memory_limit を増やして頂く

すいません、これがよく分かりませんでした。

includeフォルダの中に「〜.php.inc」というファイルがいろいろありますが、
これのことでしょうか?
その場合、このうちのどのファイルを修正すればよいのでしょうか?

いずれ、WEBに画像をアップするにはもっと小さいサイズのものを
アップするようにしたいと思います。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

投稿記事 by webmaster » 2005年12月19日(月) 11:04

 webmasterです。
 bcacsatoさん、すいません、説明が不足しておりました。m(_ _)m

 php.iniは、PHPの設定を変更する為のファイルで、CMSDの機能ではなく
PHP本体の機能になります。

 php.iniは、通常はPHPをインストールしたフォルダ内に存在します。
 php.iniの変更後は、apacheを再起動して頂く必要がありますのでご注意下さい。

 また、レンタルサーバーなどをご利用されていて、php.iniの編集権限がない
場合もあるかと思います。
 その場合は、.htaccessファイルを編集して頂くことで、php.iniを編集した場合と
同等の効果を得ることができます。

 CMSDのインストール先フォルダに .htaccess というファイルを作成し、中に

コード: 全て選択

php_value memory_limit 10M
 と記述していただければOKだと思います。
 既に.htaccessが存在する場合には、上記の行を最終行に追加して頂ければOKです。

 さらに万全を期すために、

コード: 全て選択

php_value upload_max_filesize 10M 
php_value post_max_size 10M 
 の2行も追加すればより安心かと思います。
 10Mはあくまで目安ですので、適当に増減してみて下さい。
 サーバーによっては、これらの設定が無効になる場合もあるかもしれません。

 「<?php phpinfo(); ?>」とだけ記述されたphpファイルをサーバへアップロードし、
それをブラウザから実行すれば、現在のPHPの設定値を確認することができます。
 (local valueの方をご確認下さい)

 以上、何度もお手数をおかけして申し訳ありませんが、またご不明な点がありましたら
ご連絡頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

投稿記事 by bcacsato » 2005年12月19日(月) 11:11

webmasterさま、さっそくのご回答ありがとうございます。
なるほど、承知しました。試しててみたいと思います。
詳しいご回答ありがとうございました。

返信