2015-04-20 3 views
0

Я пытаюсь сделать скрипт, который делает что-то подобное тому, что представлено на этом посту:Динамически Отображение изображений в текстовой области

http://spotfire.tibco.com/tips/2014/02/25/dynamically-displaying-images-in-a-text-area/

Единственное отличие состоит в том, что я пытаюсь использовать изображения, которые я сохранил на сетевом диске или на моей локальной машине. Я провел много исследований и попробовал разные подходы, но ничего не работает. Я думаю, мне просто нужен способ прочитать изображение из файла без всяких связанных с ним действий «webRequest». Часть об обработке изображений и использовании blob кажется прекрасной.

Любая помощь очень ценится. Благодаря!

ответ

1

Я нашел ваш вопрос действительно интересным и побежал по всему миру, ища способ сделать это, и я думаю, что придумал хороший метод, который сочетает предоставленную вами связь и использование локального/сетевого файла.

В приведенном ниже кодексе я использовал изображение моей кошки и изображение колокола, чтобы идти туда и обратно между ними. Для того чтобы python мог прочитать ваш путь к файлу, необходимы дополнительные escape-обратные косые черты. Я включил 2 пути в мой пример локального и сетевого пути, и оба они работают. Также обратите внимание, что этот код не волнует, если мой образ Белла был .gif, а не .png.

С более логичным кодированием и свойствами документа вы можете более конкретно сказать, какой файл вы хотите открыть. (Если свойство = «Dog», а затем захватить путь собаки, Элиф свойство = «Kid», а затем захватить путь для ребенка и т.д.)

Ключевой элемент, который делает эту работу для вас является Image.FromFile (stringPath) функция. Остальное следует за исходным материалом и сохраняет его как капля.

from System.IO import MemoryStream, SeekOrigin 
from System.Drawing import Image 
from System.Drawing.Imaging import ImageFormat 
from Spotfire.Dxp.Data import BinaryLargeObject 

if Document.Properties["CurImg"] != "Cat": 
    imgSrc = "C:\\Users\\USERNAME\\Pictures\\2013-07-14 19.20.18.png" 
    Document.Properties["CurImg"] = "Cat" 
else: 
    imgSrc = "\\\\COMPANY\\DEPARTMENT\\USERNAME\\Private\\Bell.gif" 
    Document.Properties["CurImg"] = "Bell" 

img = Image.FromFile(imgSrc) 
stream = MemoryStream() 
img.Save(stream, ImageFormat.Png) 
stream.Seek(0, SeekOrigin.Begin) 
blob = BinaryLargeObject.Create(stream) 
Document.Properties["PngImage"] = blob 

Источники:
http://www.grasshopper3d.com/forum/topics/read-images-in-python - Чтение файлов изображений в Python
http://spotfire.tibco.com/tips/2014/02/25/dynamically-displaying-images-in-a-text-area/ - Исходный материал для съемки изображения в сгустка