การลดรอยหยักเมื่อวาดเส้นใน Canvas ใน Firefox

ฉันกำลังพยายามวาดไดอะแกรมด้วยแคนวาส และต้องการเส้นที่คมชัด ไม่ใช่การต่อต้านนามแฝง ฉันรู้เกี่ยวกับออฟเซ็ต 0.5 ที่คุณต้องใช้เพื่อทำให้เส้นตกบนพิกเซลของหน้าจอทุกประการ แต่ถึงอย่างนั้นฉันก็ได้รับเส้นต่อต้านนามแฝงใน Firefox ในขณะที่ทั้ง Chrome และ IE แสดงผลได้ดี

นี่คือตัวอย่างโค้ดบางส่วน:

JS:

var canvas = document.getElementsByTagName('canvas')[0];
var ctx = canvas.getContext('2d');
canvas.width = 100;
canvas.height = 100;

ctx.translate(-0.5, -0.5); //To get crisp lines
ctx.lineWidth = 1;
ctx.strokeStyle = 'black';
for (var x = 20; x < 100; x += 20){
    ctx.moveTo(x, 20);
    ctx.lineTo(x,100);
    ctx.stroke();
}

ดู JsFiddle: http://jsfiddle.net/einaregilsson/9yrF6/8/

นี่คือลักษณะที่ปรากฏใน Chrome และ IE:

เส้นที่แสดงผลของ Chrome

นี่คือลักษณะที่ปรากฏใน Firefox:

เส้นแสดงผล Firefox

นี่คือ Firefox 26 บน Windows 7 ฉันได้ลองปิดการเร่งด้วยฮาร์ดแวร์ซึ่งมีคนแนะนำ แต่ก็ไม่ได้สร้างความแตกต่าง มีแนวคิดใดบ้างที่ฉันจะได้เส้นที่คมชัดบน Firefox

นอกจากนี้มีใครใน Firefox ที่ไม่ได้รับบรรทัดต่อต้านนามแฝงเมื่อพวกเขาดูซอ? ฉันสงสัยว่านี่เป็นปัญหาทั่วไปของ Firefox หรือเฉพาะกับการตั้งค่าของฉัน


person Einar Egilsson    schedule 20.01.2014    source แหล่งที่มา


คำตอบ (2)


ดูเหมือนว่าคุณซูมเข้าเล็กน้อยบน Firefox (สังเกตว่าเส้นนั้นเว้นระยะห่างกันเล็กน้อย)

กด Ctrl+0 เพื่อรีเซ็ตระดับการซูม นี่ควรแก้ไขปัญหาของคุณ

person Niet the Dark Absol    schedule 20.01.2014
comment
ขอบคุณ. การรีเซ็ตการซูมไม่ได้ผลจริงๆ ฉันเคยทำมาก่อนแล้ว แต่หลังจากอ่านคำตอบของคุณ ฉันค้นหาและพบสิ่งนี้: support.mozilla.org/en-US /questions/963759 ซึ่งระบุว่า Firefox เคารพระดับการซูมเริ่มต้นที่ฉันตั้งไว้ในการตั้งค่าระบบปฏิบัติการซึ่งก็คือ 125% ดังนั้น Ctrl+0 ก็เป็นค่าเริ่มต้นเช่นกัน การเปลี่ยนกลับเป็น 100% ช่วยแก้ไขปัญหาได้ ขอบคุณ. - person Einar Egilsson; 20.01.2014
comment
หรือหากคุณต้องการให้ระบบปฏิบัติการของคุณซูมอยู่ที่ 125% แต่ปล่อยให้ Firefox ควบคุมระดับการซูมของตัวเอง คุณสามารถไปที่ about:config และเปลี่ยนlayout.css.devPixelsPerPx เป็น 1.0 โดยค่าเริ่มต้นคือ -1.0 ซึ่งหมายถึงใช้การตั้งค่าระบบปฏิบัติการ - person Einar Egilsson; 20.01.2014
comment
แล้ว FirefoxMobile ล่ะ? - person Thomas Decaux; 24.03.2014

มันควรจะคมชัดใน Firefox เหมือนกัน คุณอาจซูมเข้าแล้ว รีเซ็ตการซูม (CTRL+0)

person ArtBIT    schedule 20.01.2014