I’m trying to transfer an image file data from one node.js script to another.
I read the image file in ‘parameter.js’ using ‘readfilesync’, then transfer it to another script ‘convert.js’.
convert.js is meant to re-convert the file data back to an image using WriteFile – and it seems to do a good job.
However, when I try to open the newly created file, I get the error like;
This is not a valid bitmap file, or its format is not currently supported.
Could you help me spot the problem?
Thanks for your help!
parameter.js:
// Path to image file
let datasetRoute = resolve('./app/scripts/myphotos/bubbles1.png');
// Get image file
let file = readDataset();
// Function to get image file
function readDataset() {
try {
// Fetch dataset using new 'currentPage' number
return fs.readFileSync(datasetRoute, 'utf8');
}
catch (err) {
return err;
}
}
// Create parameter function
const parameterFunctions = {
// Define function parameters
// Parameter 1
parameter1: file, // set parameter1 as value of file
}
convert.js:
var bytes = params.uParams[0].parameter1.replace(/^data:image/png;base64,/, "");
fs.writeFileSync('app/scripts/media/test.png', bytes, 'base64', (err) => {
if (!err)
console.log(`Image saved!`);
});
Advertisement
Answer
Converted the entire operation into a simple read and write ‘binary’ format.
Finally worked!
Here’s the code:
parameter.js:
// Path to image file
let datasetRoute = resolve('./app/scripts/myphotos/bubbles1.png');
// Get image file
let file = readDataset();
// Function to get image file
function readDataset() {
try {
// Fetch dataset using new 'currentPage' number
return fs.readFileSync(datasetRoute, 'binary');
}
catch (err) {
return err;
}
}
// Create parameter function
const parameterFunctions = {
// Define function parameters
// Parameter 1
parameter1: file, // set parameter1 as value of file
}
convert.js:
var bytes = params.uParams[0].parameter1;
fs.writeFileSync('app/scripts/media/test.png', bytes, 'binary', (err) => {
if (!err)
console.log(`Image saved!`);
});