回答編集履歴
3
3D化についての手法を追記
test
CHANGED
@@ -1,3 +1,39 @@
|
|
1
|
+
## さらに追記
|
2
|
+
|
3
|
+
`image-rendering: -webkit-optimize-contrast;` の亜種ですが、対象要素を3Dレンダリングさせることで画像縮小アルゴリズムをさらに変更させるテクニックがあります。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
```css
|
8
|
+
|
9
|
+
backface-visibility: hidden;
|
10
|
+
|
11
|
+
transform: translateZ(1px);
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
(上記2つのうちどちらかの指定でOKですが念のため)
|
16
|
+
|
17
|
+
モダンブラウザでは要素を3D空間にレンダリングして立体表示することができます。
|
18
|
+
|
19
|
+
[(サンプル)](https://developer.mozilla.org/ja/docs/Web/CSS/transform-function/translateZ())
|
20
|
+
|
21
|
+
立体表示になっている面に画像をレンダリングする際は、処理速度を考慮してさらに計算量の少ない方法で拡大・縮小するようになっているようです。chrome/edgeだとかなり荒い縮小になりますが図形や文字は逆にボケにくくなります。(細線は省略されてしまったりしますが)
|
22
|
+
|
23
|
+
参考にしている他社(?)サービスの実装も上記のようなテクニックを使っている可能性があります。
|
24
|
+
|
25
|
+
ちなみに他社サービス実装の次点予想は「サムネイルと原寸表示時で異なる画像ファイルを使用している」です。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
ちなみにfirefoxおよびsafariでの表示は無指定時と全く同じでした。
|
30
|
+
|
31
|
+
またsafariでは`image-rendering: -webkit-optimize-contrast;`がpixelatedとほとんど同じような縮小になるので使用しない方が良いかもしれません。
|
32
|
+
|
33
|
+
(RetinaのMacを持っていないのでRetinaでは試していません)
|
34
|
+
|
35
|
+
|
36
|
+
|
1
37
|
## 追記
|
2
38
|
|
3
39
|
|
2
誤りの指摘を受けて当該部分を打ち消しして補記した
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
edgeとchromeはエンジンが同じ(chromium)なので使用しているアルゴリズムは一緒(ニアレストネイバ法)だと推定されます。firefoxのアルゴリズムは以下の記事によるとバイリニア法のようです。
|
19
|
+
edgeとchromeはエンジンが同じ(chromium)なので使用しているアルゴリズムは一緒~~(ニアレストネイバ法)~~(追記:誤った記載だったので削除しました)だと推定されます。firefoxのアルゴリズムは以下の記事によるとバイリニア法のようです。
|
20
20
|
|
21
21
|
[https://developer.mozilla.org/ja/docs/Web/CSS/image-rendering](https://developer.mozilla.org/ja/docs/Web/CSS/image-rendering)
|
22
22
|
|
1
テスト結果追記
test
CHANGED
@@ -1,3 +1,49 @@
|
|
1
|
+
## 追記
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
誠に勝手ながら、画像のURLが分かってしまったので私の方で同画像の表示テストをいろいろとさせていただきました。
|
6
|
+
|
7
|
+
(問題があるのであればurlが載っている画像は削除してください。私もこの回答が終わったらPCから画像を削除します)
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
edge, chrome, firefoxでそれぞれ1920x1080の解像度にフィットするよう表示させたところ、edgeとchromeでは変化がありませんでしたがfirefoxでは明らかに図面がシャープに見えました。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
以上のことから、ブラウザがデフォルトで使っている拡大縮小アルゴリズムの違いだと推定されます。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
edgeとchromeはエンジンが同じ(chromium)なので使用しているアルゴリズムは一緒(ニアレストネイバ法)だと推定されます。firefoxのアルゴリズムは以下の記事によるとバイリニア法のようです。
|
20
|
+
|
21
|
+
[https://developer.mozilla.org/ja/docs/Web/CSS/image-rendering](https://developer.mozilla.org/ja/docs/Web/CSS/image-rendering)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
画像のレンダリングアルゴリズムはCSSで変更できます。プロパティ名は `image-rendering`です。
|
26
|
+
|
27
|
+
`pixelate`にすると明らかにギザギザになってかえってひどくなりますが、下記の記事の様に`-webkit-optimize-contrast`を指定するとかなり改善して見えるようになりました。(
|
28
|
+
|
29
|
+
[https://sho-log.com/chrome-image-blurred/](https://sho-log.com/chrome-image-blurred/)
|
30
|
+
|
31
|
+
それでのfirefoxの方が若干見やすい感はありますが、文字はだいぶん視認性が良くなりました。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
ただし、このテストは1920x1080で「拡大縮小レイアウト」が100%の状態で行っています。
|
36
|
+
|
37
|
+
高DPI設定(「拡大縮小レイアウト」が125%や150%になる、ノートPCによくある設定)の場合、おそらくブラウザでのレンダリングが
|
38
|
+
|
39
|
+
「縦1080pxに合うように縮小→拡大縮小レイアウトで設定した倍率に拡大」という手順を踏んでいる可能性があります。その場合はアプリやOS側の改善待ちになるのかもしれません。(他の方の回答でも言及されていますが)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
## 以前の回答
|
44
|
+
|
45
|
+
|
46
|
+
|
1
47
|
確かに内蔵GPUに原因がある可能性は否定できないところだと思います。
|
2
48
|
|
3
49
|
解決につながるかどうかは未知ですが、設定を変更して改善する可能性がある点としては、
|