http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2012-08-21T07:44:08Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15434
2012-08-21T07:44:08Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Invalid(無効)</i> に変更</li><li><strong>対象バージョン</strong> を削除 (<del><i>OpenPNE 3.8.x</i></del>)</li></ul><p><a class="issue tracker-1 status-1 priority-4 priority-default" title="Bug(バグ): リサイズ後のアルバム画像をクリックしても、アップロード時の画像ではなくリサイズ後の画像が表示されてしまう (New(新規))" href="http://redmine.openpne.jp/issues/3059">#3059</a> と重複です。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15440
2012-08-21T07:59:44Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>トラッカー</strong> を <i>Enhancement(機能追加・改善)</i> から <i>Bug(バグ)</i> に変更</li><li><strong>ステータス</strong> を <i>Invalid(無効)</i> から <i>New(新規)</i> に変更</li><li><strong>対象バージョン</strong> を <i>OpenPNE 3.9.0-old</i> にセット</li><li><strong>3.6 で発生するか</strong> を <i>Yes (はい)</i> にセット</li></ul><p>本チケットが重複しているとしていましたが、重複元の <a class="issue tracker-1 status-1 priority-4 priority-default" title="Bug(バグ): リサイズ後のアルバム画像をクリックしても、アップロード時の画像ではなくリサイズ後の画像が表示されてしまう (New(新規))" href="http://redmine.openpne.jp/issues/3059">#3059</a> が複数の問題を扱っていたため、本チケットを「リサイズ後の画像サイズが荒い」という問題を対応するためのチケットとしてリオープンします。</p>
<p>それから本現象はバグとしてみなすべきです。トラッカーを変更します。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15441
2012-08-21T08:00:52Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>題名</strong> を <i>リサイズ画像の品質を改善</i> から <i>リサイズ後の画像サイズが荒い</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15442
2012-08-21T08:01:11Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>担当者</strong> を <i>Kousuke Ebihara</i> にセット</li></ul><p>引き受けます。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15448
2012-08-23T05:14:39Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul></ul><p><a class="issue tracker-1 status-5 priority-5 priority-high3 closed" title="Bug(バグ): 透過PNG画像が透過されずに背景が黒くなってしまう (Fixed(完了))" href="http://redmine.openpne.jp/issues/1931">#1931</a> では、最初に、 PEAR::Image_Transform のオプションの scaleMethod を pixel に設定することで現象を回避していました。これによってリサイズ時に <code>imagecopyresampled()</code> の代わりに <code>imagecopyresized()</code> がコールされることになりますが、それによって生じることについてまず説明します。</p>
<p>PHP にバンドルされている libgd のコードを確認したところ、 <code>gdImageCopyResized()</code> では出力が truecolor と明示されていない場合、アルファチャネル関連の処理を自動的におこないますが、 <code>gdImageCopyResampled()</code> ではそれがありません (truecolor と明示された場合のみ。 truecolor でない場合は <code>gdImageCopyResized()</code> への fallback がおこなわれる)。</p>
<p>つまり truecolor についての考慮を自前でしないのであれば、アルファチャネル情報を保持するために (truecolor であっても) <code>imagecopyresampled()</code> ではなく <code>imagecopyresampled()</code> を使う必要があります。しかし、この方針には本チケットで指摘されているように、拡大縮小後の画像が粗くなる傾向があるといった問題があります。</p>
<p>ではどうするべきかというと、</p>
<ul>
<li>アルファブレンディングを無効に ( <code>imagealphablending()</code> ) し、</li>
<li>完全なアルファチャネル情報を保持するよう ( <code>imagesavealpha()</code> ) にしたうえで、</li>
<li>リサイズの必要がある場合は <code>imagecopyresampled()</code> でリサイズをおこなう</li>
</ul>
<p>必要があります。</p>
<p>実は PEAR::Image_Transform では、 truecolor 画像の場合はリサイズ時に (リサイズのためにパレット情報を構築する際に) 前二者は透過的におこなわれていました。</p>
<p><a class="issue tracker-1 status-5 priority-5 priority-high3 closed" title="Bug(バグ): 透過PNG画像が透過されずに背景が黒くなってしまう (Fixed(完了))" href="http://redmine.openpne.jp/issues/1931">#1931</a> で問題になっていたのは、 <b>リサイズしない場合に</b> 画像が透過されないというものでした。これは実は単純な話で、 PEAR::Image_Transform によるリサイズがおこなわれない場合に前二者を満たしていなかったという現象だったようです。ただし、 <a class="changeset" title="Fixed relying on the 'Image_Transform' library to determine whether a true color image (refs #1931)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/a3c2edbf01d390e8d402f8f74954b32aa24a774a">a3c2edbf</a> でおこなわれた scaleMethod の変更は、リサイズ処理を通らないためあまり意味がなく、 <a class="changeset" title="(refs #1931) Fixed the image that doesn't resize TrueColor is not used." href="http://redmine.openpne.jp/projects/op3/repository/revisions/ab5cfd3afc39eab7333cf1f915f09c39cde861ba">ab5cfd3a</a> の、「PEAR::Image_Transform による画像パレット情報構築処理を実行させるために <code>crop()</code> メソッドをコールする」ことによってはじめて実質上の対策となりました (ただし <code>crop()</code> がリサイズ時に実質二回コールされてしまうのは過剰と言えます)。</p>
<p>ということで本チケットの問題への対策としては、</p>
<p>1. scaleMethod の指定を外し、<br />2. <code>save()</code> 前の <code>crop()</code> は活かす (が、未リサイズ時に限定したい)</p>
<p>が適切であるといえます。</p>
<p>しかし、「1. scaleMethod の指定を外し、」には問題があります。このオプションを外すことで、 PEAR::Image_Transform 側で画像が常に truecolor としてみなされてしまうようで、リサイズ時に GIF の透過情報が壊れるといった問題があるようです。</p>
<p>そこで、画像が truecolor でない場合にはリサイズ前と保存前に、この scaleMethod の指定をおこなっておく必要があります。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15449
2012-08-23T05:20:38Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="changed not to call crop() method twice (fixes #3062)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/a95f680bdbdebd254e17109d76496381f3c10bbc">a95f680bdbdebd254e17109d76496381f3c10bbc</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15450
2012-08-23T05:21:13Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul></ul><p>1. 非 truecolor 時のみ scaleMethod を指定する<br />2. <code>save()</code> 前の <code>crop()</code> はこれまでにリサイズをおこなわなかったときにのみ実行する</p>
<p>形で修正しました</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15451
2012-08-23T05:34:50Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/15451/diff?detail_id=20152">diff</a>)</li></ul>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15452
2012-08-23T05:48:21Z
守 手嶋
tejima@tejimaya.com
<ul></ul><p>運営的な視点で考えると、「透過PNGは透過しなくなる」という方針をとっても、ユーザーは納得すると思います。</p>
<p>透過を使いたいユーザー<<<<<<綺麗な画像を求めるユーザー</p>
<p>という観点から。</p>
<p>透過画像判定ができる<br />↓<br />透過画像を透過しない画像に変更してしまう(背景白にできるか?)<br />↓<br />通常のイメージと一緒にResampleで縮小する</p>
<p>運営としては、これでも十分良いと思います。<br />透過画像の判定ができるか?背景白で一般画像に変換できるか?に、かかっていますが。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15453
2012-08-23T06:06:14Z
守 手嶋
tejima@tejimaya.com
<ul></ul><p>と、、、書いているうちに修正コードが追加されてた!<br />ユーザー制約なく、解決できるならそれでバッチリです。</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=15465
2012-08-24T04:50:41Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>3.8 で発生するか</strong> を <i>Yes (はい)</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=17951
2014-07-15T05:17:20Z
isao sano
sano@tejimaya.com
<ul><li><strong>コピー先</strong> <i><a class="issue tracker-4 status-5 priority-4 priority-default closed" href="/issues/3669">Backport(バックポート) #3669</a>: リサイズ後の画像サイズが荒い</i> を追加</li></ul>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=18008
2014-08-07T08:21:47Z
誠二 天重
tenjuu99@gmail.com
<ul><li><strong>コピー先</strong> <i><a class="issue tracker-4 status-5 priority-4 priority-default closed" href="/issues/3677">Backport(バックポート) #3677</a>: リサイズ後の画像サイズが荒い</i> を追加</li></ul>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=18034
2014-08-18T10:21:35Z
Shinichi Urabe
urabe+op3@nuts-choco.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul><p>レビューOK</p>
OpenPNE 3 - Bug(バグ) #3062: リサイズ後の画像サイズが荒い
http://redmine.openpne.jp/issues/3062?journal_id=22198
2017-04-03T07:50:38Z
isao sano
sano@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Won't fix(対応せず)</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>0</i> に変更</li></ul><p>OpenPNE 3.8.13 にて対応済みであったため、対応せずとします。</p>