我想在 GTK DrawingArea 中显示 SVG 图像而不会在缩放时降低质量。目前,我正在使用以下代码:
fn build_ui(application: >k::Application) {
let window = gtk::ApplicationWindow::new(application);
window.set_default_size(WIDTH, HEIGHT);
let drawing_area = DrawingArea::new();
window.add(&drawing_area);
let file_data = include_str!("../file.svg").as_bytes();
let loader = PixbufLoader::new();
loader.write(file_data);
loader.close();
let pixbuf = loader.pixbuf().unwrap();
let pixbuf = pixbuf.scale_simple(100, 100, InterpType::Hyper).unwrap();
drawing_area.connect_draw(move |_, cr| {
cr.set_source_pixbuf(&pixbuf, 0.0, 0.0);
cr.paint();
Inhibit(false)
});
window.show_all();
}
原图尺寸为50x50像素,我将其缩放为100x100像素,导致像素化。这是因为 Pixbuf 适用于光栅图像。我怎样才能在不损失任何缩放比例的情况下使用矢量输出?