Impossible d'ouvrir le périphérique png en boucle

J'ai été bidouiller avec une fonction dans R, où, pour faire une histoire courte, j'ai un foren boucle, et ce, à chaque étape, j'ai enregistrer un tracé à l'aide de pngpuis immédiatement readPNG de sorte que je peux extraire des informations RVB. J'ai ensuite faire une seconde intrigue, puis readPNG ce que je puisse comparer le RVB des deux images.
Le problème est que je reçois un message d'erreur à propos de l'impossibilité de démarrer le png() appareil, ou d'ouvrir le fichier pour l'écriture, après un certain nombre de boucles (peut être aussi peu que d'une poignée de boucle, ou comme quelques milliers).

Ici, c'est vraiment simplifié le code, mais il a l'essentiel, et génère le message d'erreur:

testfun<-function(beg,fini)
{
 library(png)
 setwd("D://mydirectory")
 for (i in beg:fini)
 {
  png("test.png",width=277,height=277) #candidate image
  par(mai=c(0,0,0,0))
  plot(1,type="n",ann=FALSE,xlim=c(0,255),ylim=c(0,255),
         xaxt="n",yaxt="n",frame.plot=F)
  polygon(x=c(10,60,60),y=c(10,10,60),col="red")
  graphics.off()

  image<-readPNG("test.png")
  #code where I get rgb values for original

  png("test2.png",width=277,height=277) #candidate image with diferent params
  par(mai=c(0,0,0,0))
  plot(1,type="n",ann=FALSE,xlim=c(0,255),ylim=c(0,255),
         xaxt="n",yaxt="n",frame.plot=F)
  polygon(x=c(10,60,60),y=c(10,10,60),col="blue")
  graphics.off()

  image<-readPNG("test2.png")
  #code where I get rgb values for second image, and compare
 }
}

Et le message d'erreur:

Error in png("test.png", width = 277, height = 277) : 
  unable to start png() device
In addition: Warning messages:
1: In png("test.png", width = 277, height = 277) :
  Unable to open file 'test.png' for writing
2: In png("test.png", width = 277, height = 277) : opening device failed

À l'origine, j'avais graphics.off() comme dev.off() mais alors pensé que peut-être la boucle a été si rapide que la désactivation d'un appareil n'était pas assez rapide avant de devoir être à nouveau ouverte et il était "confus" en quelque sorte. J'ai aussi essayé d'utiliser Sys.sleep(0.1) après chaque graphics.offmais cela n'a pas aide non plus. Ai-je raté quelque chose de stupide et évident, ou est-ce juste un appareil bug?

source d'informationauteur Herc