Solution:
change responseType of xhr2(XMLhttprequest) from 'blob' to 'arraybuffer' and create blob like this:
var xhr2BLOB = new XMLHttpRequest();
xhr2BLOB.responseType='arraybuffer';
xhr2BLOB.open('GET',path_to_image, false); //SYNCHRONOUS
xhr2BLOB.send();
var arrayBuffer = xhr2BLOB.response;
fs.root.getDirectory('/'+dir, {create:true});
fs.root.getDirectory('/'+dir+'/'+dir_image, {create: true});
fileEntry=fs.root.getFile('/'+dir+'/'+dir_image+'/f_'+filename, {create: true});
var blob = new Blob([new Uint8Array(arrayBuffer)],{type:'image/'+arr_image[2]});
fileEntry.createWriter().write(blob);
Remember, this a webworker code with synchronous XMLhttprequest and synchronous file system.