2015-08-14 14 views
21

मैं एमएस एज के लिए बाइबिक के साथ छवि स्केल कैसे बना सकता हूं? क्या कोई सीएसएस या ऐसा ही है जो व्यवहार को बदल सकता है। पर एमएस एज दो छवियों कि पृष्ठभूमि की बनावट की है देखते हैं http://duttongarage.com/Race-Workshop~317माइक्रोसॉफ्ट एज छवि स्केलिंग

सही पर, आप अजीब कलाकृतियों काफी स्पष्ट रूप वाम पर

Chrome v Edge Moire pattern

क्रोम देख सकते हैं,:

यह पेज देखें सही। जैसा कि आप देख सकते हैं कि आकार के निकट पड़ोसी या रैखिक होने के आकार से कुछ अजीब मोर प्रभाव होता है, न कि बाइबिक।

एक और उदाहरण है कि और अधिक विशिष्ट है: Edge v Crhome Pixelation

माइक्रोसॉफ्ट एज शीर्ष पर, क्रोम नीचे पर। पिक्सेलेशन पर ध्यान दें, जैसा कि पिछले दशक से ब्राउज़र से मैं अपेक्षा करता हूं।

+0

आप बस अपनी छवियों से 2x2 पिक्सेल वाले पैटर्न ओवरले को हटा सकते हैं :) –

+1

यह स्केलिंग का एक स्पष्ट आर्टिफैक्ट था, जहां तक ​​मैं कह सकता हूं, सभी छवियों के साथ ऐसा होता है। मैं एक और उदाहरण छवि जोड़ दूंगा। –

+1

कोई वैध आधिकारिक डॉक्स नहीं ढूंढ सकता है। क्या यह हो सकता है कि यह अभी तक एज में नहीं उतरा है? https://developer.mozilla.org/en/docs/Web/CSS/image-rendering –

उत्तर

0

अप्रचलित

यह अप्रचलित समाधान है और एमएस एज के हाल के संस्करणों पर काम नहीं करता।

===========

इस छोटे सीएसएस मेरे लिए समस्या तय tweak:

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

यह एज निर्माण में कुछ भी नहीं करता है 12.10240 –

+1

अब यह IE11 (कम से कम Win10 में) में कुछ भी नहीं करता है ---- प्रतिभा इस हैक को हटा दिया गया है, डब्ल्यू ITHOUT डिफ़ॉल्ट-इंजन को ठीक करने ---- डेमो के रूप में, अपने डेस्कटॉप पर microsoft.com पर ब्राउज़ करें, ब्राउज़र-विंडो को स्केल करें और देखें कि एमएस ब्राउज़र की तुलना क्रोम और फ़ायरफ़ॉक्स से कैसे की जाती है ---- इस उत्तरदायी में अविश्वसनीय युग ... – Rop

+0

@ रॉप: एक परिपूर्ण दुनिया में, प्रीफिक्स्ड गुणों को कभी भी उत्पादन में उपयोग नहीं किया जाना चाहिए। असल में, अगर कोई अच्छी प्रतिक्रियाशील साइट बनाने की कोशिश कर रहा है, तो मुझे लगता है कि विभिन्न डिवाइसों पर एक आसान लोड समय देने के लिए srcset सुविधा एक बेहतर विकल्प होगा। – Katana314

2

जवाब का stupidness के लिए क्षमा करें, लेकिन, मैं देख सकता हूँ, एज नहीं करता है किसी छवि-प्रतिपादन विकल्पों का समर्थन नहीं करते हैं, इसलिए, कृपया चित्र का आकार बदलने के लिए jQuery का उपयोग करने का प्रयास करें।

उदाहरण के लिए, आप this answer से समाधान का उपयोग कर सकते हैं: सिर्फ <canvas id="canvas"></canvas> अपनी छवि के नीचे बना सकते हैं और देखते हैं:

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"; 

आप आसानी से गणित के साथ oc.width समायोजित कर सकते हैं। उदाहरण के लिए, आप,

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

बेहतर उपयोग कर सकते हैं अगर आप से

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

अपने संरचना को समायोजित img.src के लिए आप

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

उपयोग कर सकते हैं लेकिन मैं यकीन नहीं है, कैसे इसे ठीक से काम करने के लिए। आशा है कि आप इसे ठीक करें :)

+0

यह एक दिलचस्प समाधान है, मुझे यकीन नहीं है कि ब्राउजर विंडो का आकार बदलते समय यह तरल लेआउट के साथ कितना अच्छा प्रदर्शन करेगा। –

+0

@ChrisSeufert, धन्यवाद। ठीक है, हाँ। जब आप ब्राउज़र विंडो रीफ्रेश करते हैं, तो छवि केवल तभी आकार बदल जाएगी। मेरी टिप्पणियों का प्रयास करें ('oc.width = oc.width = $ ("। Me-wrap-image ")। चौड़ाई();')। यदि आप पेज लोड होने के बाद ब्राउज़र विंडो का आकार बदल नहीं पाएंगे, तो सबकुछ मुझे विश्वास है, ठीक रहेगा। –

+0

@ChrisSeufert, लेकिन, जैसा कि मैं खोज सकता हूं, यहां तक ​​कि बड़ी कंपनियां भी ऐसा नहीं करती हैं। उदाहरण के लिए, जिवोसाइट मॉड्यूल। वह सिर्फ अपनी स्थिति उत्पन्न करता है और यह सब कुछ है, यदि आप ब्राउज़र विंडो का आकार बदलते हैं, तो वह आकार बदल नहीं पाएगा। लेकिन, ऑप्टिकल फाइबर केबल, आप 'window.setInterval (function() { // याद समारोह }, 5000) का उपयोग कर सकते हैं;' लेकिन, वास्तव में? :) –

संबंधित मुद्दे