2015-08-14 17 views
21

Come si crea una scala dell'immagine con bicubica per MS Edge? C'è qualche CSS o simile che può cambiare il comportamento.Scalabilità immagine Microsoft Edge

Vedere questa pagina: http://duttongarage.com/Race-Workshop~317

Sulla destra ci sono due immagini che sono con texture di sfondo, è possibile vedere i reperti strani chiaramente

Chrome v Edge Moire pattern

Chrome sulla sinistra, MS Edge la destra. Come puoi vedere, c'è qualche strano effetto moiré dal ridimensionamento che è il vicino più prossimo o lineare, non bicubico.

Un altro esempio che è più tipico: Edge v Crhome Pixelation

Microsoft Edge superiore, Chrome sul fondo. Si noti la pixelazione, è come quello che mi aspetterei dai browser dell'ultimo decennio.

+0

potresti semplicemente rimuovere la sovrapposizione di pattern 2x2 pixel dalle tue immagini :) –

+1

Questo era solo un evidente artefatto del ridimensionamento, succede a tutte le immagini per quanto posso dire. Aggiungerò un'altra immagine di esempio. –

+1

Impossibile trovare documenti ufficiali validi. Potrebbe essere che non è ancora atterrato in Edge? https://developer.mozilla.org/en/docs/Web/CSS/image-rendering –

risposta

0

obsoleto

Si tratta di una soluzione obsoleta e non funziona su versioni recenti di MS Edge.

===========

Questo piccolo CSS Tweak fisso problema per me:

img { 
    -ms-interpolation-mode: bicubic; 
} 
+2

Questo non fa nulla in Edge build 12.10240 –

+1

Ora non fa nulla in IE11 (almeno in Win10) ---- i geni RIMUOVE questo hack, W ITHOUT risolvendo il motore predefinito ---- come demo, sfoglia fino a microsoft.com sul desktop, riduci la finestra del browser e scopri come i due browser MS sono paragonati a Chrome e Firefox ---- incredibile in questo reattivo era ... – Rop

+0

@Rop: In un mondo perfetto, le proprietà con prefisso dovrebbero * mai * essere utilizzate nella produzione. In realtà, se qualcuno sta cercando di creare un buon sito reattivo, penserei che la funzione srcset sarebbe un'opzione molto migliore per dare un tempo di caricamento più fluido su dispositivi diversi. – Katana314

2

Scusate stupidness di risposta, ma, come posso vedere, Riva doesn Supporta qualsiasi opzione di rendering delle immagini, quindi, per favore, prova a usare jQuery per ridimensionare l'immagine.

Ad esempio, è possibile utilizzare la soluzione da this answer: basta creare <canvas id="canvas"></canvas> sotto la vostra immagine e vedere:

screenshot

var canvas = document.getElementById("canvas"); 

var ctx = canvas.getContext("2d"); 

img = new Image(); 
img.onload = function() { 

    canvas.height = canvas.width * (img.height/img.width); 


    /// step 1 
    var oc = document.createElement('canvas'), 
     octx = oc.getContext('2d'); 

    oc.width = img.width * 0.5; 
    oc.height = img.height * 0.5; 
    octx.drawImage(img, 0, 0, oc.width, oc.height); 

    /// step 2 
    octx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5); 

    ctx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5, 
    0, 0, canvas.width, canvas.height); 
} 
img.src = "http://duttongarage.com/img/2167/824"; 

È possibile regolare facilmente oc.width con la matematica. Ad esempio, è possibile utilizzare

oc.width = $(".me-wrap-image").width(); 
oc.height = $(".me-wrap-image").height(); 

Meglio, se si regola la vostra struttura per

| .me-wrap-image 
| .some-class-to-get-width-and-height 
-> img 

per img.src è possibile utilizzare

$("div.some-class-to-get img").each(function(){ 
    img.src = $(this).attr('src'); 
}); 

Ma io non sono sicuro, come per farlo funzionare correttamente. Spero che tu lo aggiusti :)

+0

Questa è una soluzione interessante, non sono sicuro di come si comporterebbe correttamente con il layout fluido durante il ridimensionamento della finestra del browser. –

+0

@ChrisSeufert, Grazie. Beh, sì. L'immagine verrà ridimensionata solo quando si aggiorna la finestra del browser. Prova i miei commenti ('oc.width = oc.width = $ (". Me-wrap-image "). Width();'). Se non ridimensionerai la finestra del browser dopo il caricamento della pagina, tutto, credo, sarà OK. –

+0

@ChrisSeufert, ma, come posso cercare, anche le grandi aziende non lo fanno. Ad esempio, modulo JivoSite. Genera solo una volta la sua posizione e questo è tutto, non ridimensionerà, se ridimensionate la finestra del browser. Ma, OFC, è possibile utilizzare (function() {// funzione di richiamo }, 5000) 'window.setInterval;' Ma, in realtà? :) –

Problemi correlati