Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2017 08:32:43

__akm__
Зарегистрирован: 2015-08-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как повернуть изображение emf

Здравствуйте, необходимо повернуть изображение 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

Отредактировано __akm__ (Ноя. 8, 2017 08:33:51)

Прикреплённый файлы:
attachment scr01.emf (175,6 KБ)

Офлайн

#2 Ноя. 10, 2017 22:15:26

damilkrose
Зарегистрирован: 2017-11-10
Сообщения: 18
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как повернуть изображение emf

http://python.su/forum/topic/2057/

Первый ответ. Если не лень ставить PyQt - пожалуйста!
Думаю, pyqt и для этого формата подойдет

Отредактировано damilkrose (Ноя. 10, 2017 22:16:02)

Офлайн

#3 Ноя. 14, 2017 14:52:30

__akm__
Зарегистрирован: 2015-08-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как повернуть изображение emf

Я остановился на таком способе

 #! 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)

Отредактировано __akm__ (Ноя. 14, 2017 14:52:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version