Написание комментариев (метаданных) в файле изображения с использованием R - PullRequest
0 голосов
/ 03 декабря 2018

Я хотел бы добавить информацию о параметрах к графикам, которые мы делаем в рамках нашего исследовательского проекта.Я знаю, что у png есть текстовый блок для добавления комментариев.(Я не эксперт png, но я думаю, что он использует блок tEXt.) Используя Gimp, в свойствах изображения вы можете добавить комментарий, который может быть прочитан другим программным обеспечением (например, «инспектором» в предварительном просмотре Mac. I 'я уверен, что есть эквивалент Windows).Мы делаем наши изображения с помощью ggsave.Я не видел никаких аргументов для ggsave, которые позволяют нам писать в блоке «Комментарий» в png-файле.Я пытался использовать функции png :: readPNG и png :: writePNG

im <- readPNG("test1.png",native=FALSE,info=TRUE)
md <- c(comment=paste0(date=date(),machine=Sys.info()['nodename']))
writePNG(image=im,target="test1_md1.png",text=md,metadata = md)
im2 <- readPNG("test1_md1.png",native=FALSE,info=TRUE)
attr(img2, "info")

Я могу открыть новый файл png, он выглядит так же, как старый.Однако блок комментариев не заполнен.Как видите, данные записываются в файл, но ни gimp, ни preview не могут их прочитать.Есть ли способ записать метаданные в блоке комментариев, чтобы превью и gimp могли правильно их прочитать?

Спасибо

update: ok, png :: writePNGна самом деле записывает в блок tEXt, однако ни gimp, ни preview не читают текстовый блок.Я написал простую Java-программу, которая читает блоки.

    IHDR null javax.imageio.metadata.IIONamedNodeMap@133314b
      width = 2580   height = 1800   bitDepth = 8   colorType = RGBAlpha   compressionMethod = deflate   filterMethod = adaptive   interlaceMethod = none 
    tEXt null javax.imageio.metadata.IIONamedNodeMap@b1bc7ed

        tEXtEntry null javax.imageio.metadata.IIONamedNodeMap@7cd84586
          keyword = date   value = Tue Dec  4 12:55:45 2018 
        tEXtEntry null javax.imageio.metadata.IIONamedNodeMap@30dae81
      keyword = machine.nodename   value = mycomputer.xyz.org 

Есть ли где-нибудь отдельный блок комментариев?Это блок, в который я хочу записать.

обновление 2: Похоже, что gimp / preview прочитал блок iTXt.Поэтому возникает вопрос: могу ли я написать в блок iTXt из R.

...