Как повторно сохранить изображения, существующие на диске c в DM 3.4 (Принудительная замена.) - PullRequest
1 голос
/ 06 мая 2020

Попробуйте отредактировать изображение (добавить текст и масштабную линейку), а затем автоматически сохранить / заменить исходное изображение, коды хорошо работают с DM 2.0 и предыдущей версией, но не работают с 3.4 и 3.0, он показывает " процесс не может получить доступ к файлу, потому что он используется другим процессом ". Есть ли другой способ сделать это с 3.4 и 3.0? спасибо

    image front:=getfrontimage()        
    string imgname=getname(front)
    string handler = "Gatan 3 Format"
        ImageDocument doc = GetFrontImageDocument()     
    string thispath=pathconcatenate(currentdirectory, imgname)      
    doc.ImageDocumentSaveToFile( handler, thispath)

1 Ответ

0 голосов
/ 06 мая 2020

Вы не можете сохранить файл с именем файла, открытого в данный момент. Вместо этого вы хотите «повторно сохранить» открытый файл. Самый простой способ сделать это:

image img := GetFrontImage()
img *= -1   // Just something to modify the image
img.Save()

. Если вы хотите сделать то же самое с ImageDocument, это будет

imageDocument doc = GetFrontImageDocument()
doc.ImageDocumentSave(1)

Параметр в команде может либо быть:

  • 0 = Всегда сохранять, никогда не запрашивать
    (Используйте связанное расположение или папку DigitalMicrograph.exe, если не связаны.)
  • 1 = Сохранить без запроса, если он уже связан с файлом, иначе запрос
  • 2 = Всегда запрашивать

Следующие команды также могут быть полезны при работе с файлами и изображениями:

image img := GetFrontImage()
imageDocument doc = img.ImageGetOrCreateImageDocument()

Result( "\n Image ["+img.ImageGetLabel()+"] " )
if ( doc.ImageDocumentIsLinkedToFile() )
    Result( "currenlty linked to:" + doc.ImageDocumentGetCurrentFile() )
else
    Result( "not linked to a file." )
...