ImageMagickを使わずにWindowsでpng画像からgif画像を作成する

必要なパッケージは「png」と「caTools」
図形描画関数群を「draw.R」の名前であらかじめ保存

source("draw.R")
library(png)
library(caTools) 

for(i in 1:30){ 
file.name <- sprintf("%02d.png",i)
png(file.name, width=960,height=720,bg="black")
par(mai=c(0,0,0,0))
plot.start(x1=0, y1=0, x2=959, y2=719)
plot.circlef(32*i, 360, 200,col="white") 
dev.off() 
}

for(i in 31:60){
file.name <- sprintf("%02d.png",i)
png(file.name, width=960,height=720,bg="black")
par(mai=c(0,0,0,0))
plot.start(x1=0, y1=0, x2=959, y2=719)
plot.circlef(960-(32*(i-30)), 360, 200,col="white")
dev.off() 
}

for(i in 61:75){
file.name <- sprintf("%02d.png",i) 
png(file.name, width=960,height=720,bg="black")
par(mai=c(0,0,0,0))
plot.start(x1=0, y1=0, x2=959, y2=719)
plot.circlef(32*(i-60), 360, 200,col="white")
dev.off()
} 

for(i in 76:90){
file.name <- sprintf("%02d.png",i)
png(file.name, width=960,height=720,bg="black")
par(mai=c(0,0,0,0))
plot.start(x1=0, y1=0, x2=959, y2=719)
plot.circlef(480, 360, 200+(i-75)*30,col="white")
dev.off()
} 

image <- array(0, c(720, 960, 90)) 

for(i in 1:90){
file.name <- sprintf("%02d.png",i) 
x <- readPNG(file.name) 
image[,,i] <- x[,,1] 
} 

write.gif(image,"sample.gif",transparent=1)

for(i in 1:90){
file.name <- sprintf("%02d.png",i)
file.remove(file.name) 
}