เป็นไปได้หรือไม่ที่จะเปลี่ยนคุณภาพของการแก้ไขรูปภาพในการควบคุมรูปภาพ WPF

การควบคุมรูปภาพ - วางลงในช่องมองภาพ สำหรับการปรับขนาดอัตโนมัติเมื่อขนาดหน้าต่างเปลี่ยนแปลง ทุกอย่างทำงานได้สมบูรณ์แบบ

เป็นไปได้ไหมที่จะเปลี่ยนประเภทของการแก้ไขในกรณีของฉัน? ตัวอย่างเช่น เลือก Bicubic หรือ Bilinear หรือสำหรับการปรับขนาดอัตโนมัติของตัวเลือกดังกล่าวไม่สามารถใช้งานได้?

BitmapImage bmp=new BitmapImage(new Uri("c:/temp/1.jpg"));
ImageSource pic = bmp;
Viewbox vb = new Viewbox();
vb.Stretch = Stretch.UniformToFill;
vb.StretchDirection = StretchDirection.DownOnly;

Image img=new Image();
img.Source = pic;

vb.Child = img;

person Mixer    schedule 09.02.2013    source แหล่งที่มา


คำตอบ (1)


เท่าที่ฉันรู้ว่าคุณไม่สามารถระบุการแก้ไขแบบ bicubic หรือ bilinear สำหรับบิตแมปใน WPF (ค่าเริ่มต้นคือเชิงเส้น) แต่คุณสามารถตั้งค่าตัวเลือก RenderOptions.BitmapScalingMode เพื่อควบคุมคุณภาพการแสดงผลของบิตแมปที่ปรับขนาดได้ดีขึ้น ตัวอย่างเช่น:

RenderOptions.BitmapScalingMode="NearestNeighbor" or RenderOptions.BitmapScalingMode="HighQuality"

มีข้อมูลเพิ่มเติมเกี่ยวกับแต่ละโหมดการปรับขนาดบน MSDN http://msdn.microsoft.com/en-us/library/system.windows.media.bitmapscalingmode

หากคุณยังคงประสบปัญหากราฟิกไม่ชัด ให้ลองตั้งค่า UseLayoutRounding="True" ในองค์ประกอบรากของคุณ การดำเนินการนี้จะปิดใช้งานการวางตำแหน่งพิกเซลย่อยขององค์ประกอบที่อาจทำให้เกิดเส้นหยักในแอปพลิเคชัน WPF

person Jack    schedule 09.02.2013
comment
ฉันสร้างอิมเมจควบคุมแบบไดนามิก ในกรณีของฉันเหมาะกับนี่คือวิธีการ: RenderOptions.SetBitmapScalingMode(img, BitmapScalingMode.Fant); - person Mixer; 09.02.2013