importhaxe.io.Bytes;importsys.io.File;importsys.io.FileSeek;classDumpPNGs{staticfunctionmain(){var path =Sys.stdin().readLine();var q =File.read(path);while(!q.eof()){if(q.readByte()!=0x89)continue;if(q.readByte()!="P".code)continue;if(q.readByte()!="N".code)continue;if(q.readByte()!="G".code)continue;if(q.readByte()!=0x0D)continue;if(q.readByte()!=0x0A)continue;if(q.readByte()!=0x1A)continue;if(q.readByte()!=0x0A)continue;var start =q.tell()-8;while(!q.eof()){var len =q.readByte()<<24;len|=q.readByte()<<16;len|=q.readByte()<<8;len|=q.readByte();var type =q.readString(4);q.seek(len+4,FileSeek.SeekCur);if(type=="IEND")break;}var end =q.tell();q.seek(start,FileSeek.SeekBegin);var size =end-start;var bytes =Bytes.alloc(size);q.readBytes(bytes,0,size);var next =path+"@"+start+".png";File.saveBytes(next,bytes);Sys.println('Saved $size bytes to $next.');}}}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.