(CSS、JavaScriptなどを使用して)クライアント側で画像の解像度を変更する可能性はありますか?画像の解像度を変更しますが、物理的なサイズを維持してください
例:200x100のサイズで解像度20x10の1920x1080イメージを表示したいとします。 img要素を使用するだけで、ソースと幅/高さを20x10に設定することは確実ですが、今では200x100のサイズで拡大画像を表示したいと思います。
サーバー側で新しい画像を生成せずに何とかできますか?
(CSS、JavaScriptなどを使用して)クライアント側で画像の解像度を変更する可能性はありますか?画像の解像度を変更しますが、物理的なサイズを維持してください
例:200x100のサイズで解像度20x10の1920x1080イメージを表示したいとします。 img要素を使用するだけで、ソースと幅/高さを20x10に設定することは確実ですが、今では200x100のサイズで拡大画像を表示したいと思います。
サーバー側で新しい画像を生成せずに何とかできますか?
あなたはHTML5のキャンバスを使用してこれを行うことができます:あなたは200
X 200
の大きさと50
X 50
の解像度を提供したい任意のサイズの元画像を考えると
:
50
X 50
50
200
x 200
に伸ばします。このように:http://jsfiddle.net/eGjak/234/。
補足として、HTML5キャンバスはすべてのブラウザでアンチエイリアスを使用していますが、これをオフにする機能はありません。そのため、ピクセル化された結果の代わりに、結果がぼやけてしまいます。
// paint 200x200 image with resolution 50x50
var w = 200,
h = 200,
p = 50,
q = 50;
var img = $("img").get(0);
img.onload = function() {
cv.width = p; // set canvas resolution
cv.height = q;
ctx.drawImage(img, 0, 0, p, q); // draw image with given resolution
cv.style.width = w + "px"; // enlarge canvas by stretching
cv.style.height = h + "px";
};
img.src = "http://www.lorempixum.com/300/300/";
イメージをキャンバス内に描画し、新しいイメージソースとしてデータを使用するのは、私がすでに考えていたソリューションです。しかし、まずは非常に遅く、もちろんブラウザがHTML5をサポートするために必要なキャンバスを使用していると思います。 – user1039407
@ user1039407:互換性を取りたい場合は、サーバー側で行うのがよいでしょう。解像度を低く設定すると、キャンバスに比較的少数のピクセルを塗りつぶす必要があるので、遅くなることはありません(CSSを使った幅の設定はパフォーマンスヒットにはならない)。 – pimvdb
しかし、メソッドを複数回呼び出す必要があるため、画像の分割を計算するには時間がかかりすぎます。キャンバスを使用して古いブラウザで機能を無効にするのが最適な解決策です。 他の可能性はありますか?例えば、50.2のサイズの画像要素を表示し、何らかの形で「再描画」せずにコンテンツのサイズを変更しますか? – user1039407
最終画像はピクセル化されて見えるでしょうか? – Duopixel
リサンプリングとサイズ変更を意味しますか? – Joseph
ここをクリックしてください:http://stackoverflow.com/questions/2369788/pure-javascript-image-handling-library-in-binary-form-not-through-domイメージ処理ではクライアントサイドのサポートが既にあるようです。 – Joseph