Найти - Пользователи
Полная версия: Как повернуть изображение emf
Начало » Python для новичков » Как повернуть изображение emf
1
__akm__
Здравствуйте, необходимо повернуть изображение emf на 90 градусов для последующей вставки в openoffice? Как это сделать?
Пробовал pyemf. Мало знаком с ним.

 import math as m
import pyemf
emf = pyemf.EMF()
d=45.0
angle=m.radians(d)
emf.load('scr01.emf')
emf2 = pyemf.EMF(width=10, height=10)
emf2.SetWorldTransform(m.cos(angle),-m.sin(angle),
                     m.sin(angle),m.cos(angle), 0.0, 0.0)
for r in emf.records:
    emf2._append(r)
emf2.save('scr02_rot.emf')
Получилось не очень: слетело форматирование текста и изображение обрезается полями. Кто-нибудь может помочь привести это в божеский вид.
Или подскажите как преобразовать его в png с высоким dpi=300…600. PIL сохраняет только dpi=72
damilkrose
http://python.su/forum/topic/2057/

Первый ответ. Если не лень ставить PyQt - пожалуйста!
Думаю, pyqt и для этого формата подойдет
__akm__
Я остановился на таком способе
 #! usr/bin/env python
# -*- coding: utf-8 -*-
import os
import pyemf
from PIL import Image
def main(imageloc, rotation, dpi):
    emf = pyemf.EMF()
    emf.load(imageloc)
    # увеличиваем размер в пикселях для увеличения dpi
    emf.dc.bounds_right *= dpi/72.0
    emf.dc.bounds_bottom *= dpi/72.0
    name = os.path.basename(imageloc).split('.')[0]
    emf_scaled = name + '_scaled.emf'
    emf.save(emf_scaled)
    im = Image.open(emf_scaled)
    im = im.rotate(rotation)
    im.save(name + '.png')
if __name__ == '__main__':
    main('scr01.emf', 90.0, 300)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB