我有一個pixbuf圖像,我想用開羅將它保存爲pdf。由於pixbuf太大,我想縮小它。我用scale_simple
的方法。但是,縮放結果變得模糊。以下是我的截圖。真正的圖像在右邊,在左邊是來自pdf的圖像如何在不損失質量的情況下縮小pixbuf圖像?
你知道如何在不損失質量的情況下縮小pixbuf嗎?以下是我的示例代碼。
from gi.repository import GdkPixbuf, Gdk
import cairo
class gui():
def __init__(self):
pix = GdkPixbuf.Pixbuf.new_from_file('tux2.png')
pix = pix.scale_simple(pix.get_width()/3, pix.get_height()/3, GdkPixbuf.InterpType.HYPER)
ps = cairo.PDFSurface('pix.pdf', 500, 500)
cr = cairo.Context(ps)
Gdk.cairo_set_source_pixbuf(cr, pix, 0, 0)
cr.paint()
if __name__ == '__main__':
gui()
當您縮放(位圖)圖像時,除非您同時增加dpi,否則您會失去質量。這是沒有辦法的。一張200x200的圖片只有3/9的300x300圖片的信息,並且不能丟失55%的信息而不會丟失質量。平均,模糊,抖動和其他技術都試圖使損失不那麼明顯;他們都有明顯的副作用,但不使用他們有更明顯的副作用。 – abarnert
我相信這個問題正是關於增加dpi,因爲輸出是PDF,基本上是一種矢量格式。 –