Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2017 06:51:44

Tenebras
Зарегистрирован: 2016-07-05
Сообщения: 97
Репутация: +  0  -
Профиль   Отправить e-mail  

Модуль wand и рисование

 reimg = Image(filename = 'VIS008.png') # Открываю картинку
reimg.save(filename = f_name) # Сохраняю её под новым именем
def point_print (x, y):
    with Image (filename = f_name) as img:
            draw = Drawing()
            draw.stroke_color = Color("orange")
            draw.stroke_width = 11
            #draw.point(2346, 204)
            draw.line((x, y), (int(x+11),int(y+11)))
            draw.draw(img)
            img.save (filename = f_name)


Как вынести img.save (filename = f_name) из функции? При попытке поставить в конец программы - ошибка. А сохранять файл после каждого цикла рисования - слишком шикарно. У меня таких циклов порядка 1000. Хорошо бы пройтись до конца, а уж потом сохранять.


Скрипт целиком:
 from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
from wand.display import display
#f_name = raw_input('Enter the name of img-file: ') + str('.png')
f_name = 'EARTH.png'
# Создадим функцию для графического отображения координат на спутниковом снимке
reimg = Image(filename = 'VIS008.png')
reimg.save(filename = f_name)
def point_print (x, y):
    with Image (filename = f_name) as img:
            draw = Drawing()
            draw.stroke_color = Color("orange")
            draw.stroke_width = 11
            #draw.point(2346, 204)
            draw.line((x, y), (int(x+11),int(y+11)))
            draw.draw(img)
            img.save (filename = f_name)
            
#Открываем файл с данными и разбиваем строки
file = open('123.txt')
ax = file.readlines()
for tex in ax:
    q = tex.split()
    x = int(q[5])
    y = int(q[6])
    print x, y
    
    point_print (x, y)

Офлайн

#2 Март 2, 2017 07:22:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Модуль wand и рисование

Tenebras
Как вынести img.save (filename = f_name) из функции?
Логично предположить, что для этого вам надо вынести весь объект img из функции.



Офлайн

#3 Март 2, 2017 08:02:28

Tenebras
Зарегистрирован: 2016-07-05
Сообщения: 97
Репутация: +  0  -
Профиль   Отправить e-mail  

Модуль wand и рисование

Каким образом?

Офлайн

#4 Март 2, 2017 08:37:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Модуль wand и рисование

Tenebras
Каким образом?
А в чем проблема то?

 f_name = 'EARTH.png'
reimg = Image(filename='VIS008.png')
reimg.save(filename=f_name)
def point_print(img, x, y):
    draw = Drawing()
    draw.stroke_color = Color("orange")
    draw.stroke_width = 11
    # draw.point(2346, 204)
    draw.line((x, y), (int(x + 11), int(y + 11)))
    draw.draw(img)
    img.save(filename=f_name)
file = open('123.txt')
ax = file.readlines()
with Image(filename=f_name) as img:
    for tex in ax:
        q = tex.split()
        x = int(q[5])
        y = int(q[6])
        point_print(img, x, y)
    img.save()



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version