Найти - Пользователи
Полная версия: Модуль wand и рисование
Начало » Центр помощи » Модуль wand и рисование
1
Tenebras
 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)

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