バージョン選択

フォーラム

メニュー

オンライン状況

147 人のユーザが現在オンラインです。 (137 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 147
もっと...

サイト内検索

バグ報告 > フロント機能 > モバイル用イメージの変換に関して

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tao_s
投稿日時: 2009/5/11 23:15
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: モバイル用イメージの変換に関して
2.3はEC-CUBEが出力バッファを読んでimgタグがあった場合に画像を変換しています。
SC_Helper_MobileのlfMobileInitOutput()で、モバイルの場合のフィルタを設定しています。
過去にここで端末毎の細かいタグの変換をした事があります。

画像の変換はSC_MobileImage()でimage_converter.incを読み込んで行っています。

画像の高さに関しては、基本指定しないで入力画像と出力画像の横幅の比から算出していますが、どっかで最初の画像の高さを初期化し忘れているんではないでしょうか?


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

QAZU
投稿日時: 2009/5/12 9:44
対応状況: −−−
半人前
登録日: 2007/3/7
居住地:
投稿: 26
Re: モバイル用イメージの変換に関して
kishikさん

引用:

seasoftさんの書いてくれた

<center><img src="<!--{$TPL_DIR}-->img/header/logo.gif"></center>

<center><img src="/upload/mobile_image/5e97dd330a218d4617d713d9afe14725bf53dbac.jpg"></center>


そうなんです。
問題はこの自動変換で困っているんです。
PC用はimg/header/logo.gifを読んでくれるんですが、携帯用は各キャリアごとに変換されているっぽく、「upload/mobile_image/」の中に細かく格納されています。
QAZU
投稿日時: 2009/5/12 9:46
対応状況: −−−
半人前
登録日: 2007/3/7
居住地:
投稿: 26
Re: モバイル用イメージの変換に関して
tao_sさん

引用:

2.3はEC-CUBEが出力バッファを読んでimgタグがあった場合に画像を変換しています。
SC_Helper_MobileのlfMobileInitOutput()で、モバイルの場合のフィルタを設定しています。
過去にここで端末毎の細かいタグの変換をした事があります。

画像の変換はSC_MobileImage()でimage_converter.incを読み込んで行っています。

画像の高さに関しては、基本指定しないで入力画像と出力画像の横幅の比から算出していますが、どっかで最初の画像の高さを初期化し忘れているんではないでしょうか?


バグ箇所の推理有難うございます。
プログラムの強い者に相談してみます。
Masashige
投稿日時: 2009/5/12 11:39
対応状況: −−−
長老
登録日: 2009/4/1
居住地:
投稿: 200
Re: モバイル用イメージの変換に関して
あ、以前遭遇しました。

if (is_null($this->outputImageHeight)) {
	$this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth);
}


image_converter.incの33〜35行目ですね。2枚目以降の呼び出しで1枚目の情報が残ってしまうようで、ここがスルーされます。

面倒だったので(えー!?)33、35行目をコメントアウトして対応しました。どうせキャッシュされるし、納期も無茶だし、まぁいっか!みたいな。そんなんしてたらwidth固定とかも直したくなるし…。

書き換え後、/html/upload/mobile_image/内のキャッシュファイルを削除するといいかもしれません。いつか頭の良い人がなんとかしてくれるの待ちです(スイマセン…)。
seasoft
投稿日時: 2009/5/12 11:50
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: モバイル用イメージの変換に関して
Masashige 様

ビンゴ!っぽいですね。

チケットにコメントしておきました。
http://svn.ec-cube.net/open_trac/ticket/414


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

QAZU
投稿日時: 2009/5/12 12:08
対応状況: −−−
半人前
登録日: 2007/3/7
居住地:
投稿: 26
Re: モバイル用イメージの変換に関して
自己解決・・・と言うわけではないですが、
バグの箇所を指摘していただいたので、プログラマーに頼んで確認してもらいました。

一応プログラマーから下記の部分を修正したとレポートが上がってきました。

data/image_converter.inc

[32 Line]
// 変換後の画像の高さが指定されていない場合、変換後の画像の横幅から求める
if (is_null($this->outputImageHeight)) {
$this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth /
$inputImageWidth);
}

==========================

//変換の前画像の横幅が320より小さい場合画像のサイズそのまま使う
if($inputImageWidth <= 320){
$this->outputImageWidth = $inputImageWidth;
$this->outputImageHeight = $inputImageHeight;
}

// 変換後の画像の高さが指定されていない場合、変換後の画像の横幅から求める
if (is_null($this->outputImageHeight)) {
if($inputImageWidth <= 320){
$this->outputImageHeight = $inputImageHeight;
}else{
$this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth
/ $inputImageWidth);
}
}


現在のところ、この修正で無事にイメージの変換ができております。
みなさま、ご協力有難うございました。

ちなみに、この方法が正しいかどうかはわかりません。
kishik
投稿日時: 2009/5/12 12:17
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: モバイル用イメージの変換に関して
ちょうど同じところを読んでいました。
解決方法をチケットの方にコメントしておきました。

http://svn.ec-cube.net/open_trac/ticket/414


-----
http://ec-cube-mall.jp/
http://ec-cube.ec-orange2.jp/
http://wiki.ec-orange2.jp/
seasoft
投稿日時: 2009/5/12 12:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: モバイル用イメージの変換に関して
QAZU 様

Width の解決について、非常に良いアイディアだと思います。

ただし、320 で固定するのは微妙な線かもしれません。端末によって、数値が変動しますので。
null チェックの上、$this->outputImageWidth で比較するのが、適切かなと思います。

まぁ、現行端末で考えれば 320 という値は、それなりに適合しているとも考えられますが。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

kishik
投稿日時: 2009/5/12 13:02
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: モバイル用イメージの変換に関して
QAZUさん

その方法だと解決してませんよ。
320より大きい画像を入れてみればわかると思います。
ミソは複数画像があるときに
$this->outputImageHeight
が最初の1回だけNULL判定に引っかかるところなので。


-----
http://ec-cube-mall.jp/
http://ec-cube.ec-orange2.jp/
http://wiki.ec-orange2.jp/
QAZU
投稿日時: 2009/5/12 15:15
対応状況: −−−
半人前
登録日: 2007/3/7
居住地:
投稿: 26
Re: モバイル用イメージの変換に関して
kishikさん

ご回答有難うございます。

チケットに書かれている事をプログラマーの方へ渡して確認しましたところ、縦横比は問題ないのですが、100*20の画像を変換した場合、240*48になってしまうようです。
横幅が240pxに指定されているとか何とか・・・
詳しいことはわからないのですが、実際シミュレーターで見たら、画面いっぱいの幅の画像になっていました。

これは、単純に横幅だけ指定すればいいのかもしれませんが・・・

もしかしたら、こちらに別の原因があるのかも知れませんので、とりあえずご報告まで。

根本的な解決ではないにせよ、とりあえずこちら側のプログラムで縦横のピクセルを指定はせず、問題なく表示できているので現状はそれで走ることにします。
現行の携帯サイトで、幅320px以上の画像を作る事はあまりないと思いますので・・・
« 1 (2) 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,117名です
総投稿数は110,319件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1682
8
red
1571
9
mcontact
1351
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.