Что является противоположной командой CleanImage () - PullRequest
0 голосов
/ 03 мая 2018

CleanImage (BasicImage) позволяет удалить изображение, не получая диалоговое окно: «Хотите сохранить ...»

Помимо добавления нуля ко всему изображению (8k на 8k) есть ли обратная часть? Нравится:

DirtyImage (BasicImage)

Спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Нет, такой команды не существует, но она также не очень полезна.
Любое действие для imageDocument автоматически пометит его dirty (т.е. нужно сохранить), так что вы можете легко сделать это добавление / удаление тега; установка значения пикселя временно; перемещение окна и т. д.

Команда CleanImage() - это просто удобная функция. Фактическое свойство "отличается от хранимого файла" является свойством ImageDocument , материала, который сохраняется на диск.

Как следствие, команда на самом деле ничего не делает с изображениями, которые не имеют ImageDocument , то есть переменные изображения, которые никогда не отображались, не сохранялись или не вызывали ImageGetOrCreateImageDocument(). Вы можете увидеть это здесь:

image img := RealImage( "test", 4, 100, 100 )
If ( TwoButtonDialog("Show?","Yes","No") )
    img.ShowImage()

If ( TwoButtonDialog("Try closing before cleaning?","Yes","No") )
    img.CloseImage()
else
{
    img.CleanImage()
    img.CloseImage()
}

Команда действительно соответствует:

void ImageDocumentClean( ImageDocument imgDoc )

и команда для проверки необходимости сохранения imageDocument -

Boolean ImageDocumentIsDirty( ImageDocument img_doc )

Итак, более типично вместо этого можно использовать эти команды, как я делаю в сценариях ниже.


Следующий скрипт показывает, как вы можете легко «испачкать» imageDocument , просто заново установив значение в пикселях. Обратите внимание, что этот скрипт работает независимо от отображения изображения, поскольку мы явно создаем ImageDocument .

Result( "\n Create Image... ")
image img := RealImage( "test", 4, 100, 100 )
Result( "\n Get it's ImageDocument... ")
imageDocument doc = img.ImageGetOrCreateImageDocument()

Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Clean it!" )
doc.ImageDocumentClean()
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Make it dirty by setting the first pixel value to the value it has..." )
img.SetPixel(0,0,img.GetPixel(0,0))
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))

Однако мне любопытно, когда такая функциональность когда-нибудь понадобится?

...