var fs = require('fs');
function base64_encode(file) {
console.time('encoding')
var bitmap = fs.readFileSync(file);
var result = new Buffer(bitmap).toString('base64');
console.timeEnd('encoding')
return result;
}
function base64_decode(base64str, file) {
console.time('decoding')
var bitmap = new Buffer(base64str, 'base64');
fs.writeFileSync(file, bitmap);
console.timeEnd('decoding')
}
var base64str = base64_encode('trump.jpeg');
console.log(base64str)
base64_decode(base64str, 'copy.jpg');
Last active
April 26, 2018 15:18
-
-
Save Ugarz/6c1d409d87b8cc0b8589ee834350cf74 to your computer and use it in GitHub Desktop.
How to manipulate image throught base64 with Nodejs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const stream = require("stream"); | |
const fs = require("fs"); | |
const file1 = "file1.jpg" | |
const file2 = "file2.pdf" | |
const file3 = "file3.png" | |
const assetsFolderIn = "assets/in" | |
const assetsFolderOut = "assets/out" | |
const readStream = fs.createReadStream(`${assetsFolderIn}/${file1}`); | |
const readStream2 = fs.createReadStream(`${assetsFolderIn}/${file2}`); | |
const readStream3 = fs.createReadStream(`${assetsFolderIn}/${file3}`); | |
const writeStream = fs.createWriteStream(`${assetsFolderOut}/${file1}`); | |
const writeStream2 = fs.createWriteStream(`${assetsFolderOut}/${file2}`); | |
const writeStream3 = fs.createWriteStream(`${assetsFolderOut}/${file3}`); | |
let base64str = []; | |
let base64str2 = []; | |
let base64str3 = []; | |
function fmt(data){ | |
const lineConverted = Buffer.from(data).toString("base64"); | |
base64str.push(lineConverted); | |
} | |
readStream | |
.on("data", fmt) | |
.pipe(writeStream) | |
.on("finish", () => console.log("Done 1")); | |
readStream2 | |
.on("data", fmt) | |
.pipe(writeStream) | |
.on("finish", () => console.log("Done 2")); | |
readStream3 | |
.on("data", fmt) | |
.pipe(writeStream) | |
.on("finish", () => console.log("Done 3")); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const stream = require("stream"); | |
const fs = require("fs"); | |
const file1 = "file1.jpg" | |
const file2 = "file2.pdf" | |
const file3 = "file3.png" | |
const assetsFolderIn = "assets/in" | |
const assetsFolderOut = "assets/out" | |
const readStream = fs.createReadStream(`${assetsFolderIn}/${file1}`); | |
const readStream2 = fs.createReadStream(`${assetsFolderIn}/${file2}`); | |
const readStream3 = fs.createReadStream(`${assetsFolderIn}/${file3}`); | |
let base64str = []; | |
let base64str2 = []; | |
let base64str3 = []; | |
// Premier READSTREAM | |
readStream.on("data", function(data, linecount) { | |
const lineConverted = Buffer.from(data).toString("base64"); | |
base64str.push(lineConverted); | |
}); | |
// Second READSTREAM | |
readStream2.on("data", function(data, linecount) { | |
const lineConverted = Buffer.from(data).toString("base64"); | |
base64str.push(lineConverted); | |
}); | |
readStream.on("close", function() { | |
cleanedBase64 = base64str.join(""); | |
const bitmap = Buffer.from(cleanedBase64, "base64"); | |
console.log("Writing files..."); | |
fs.writeFileSync(`${assetsFolderOut}/copy-${file1}`, bitmap); | |
fs.writeFileSync("assets/out/base64.txt", cleanedBase64); | |
console.log("Finished"); | |
}); | |
readStream2.on("close", function() { | |
cleanedBase64 = base64str.join(""); | |
const bitmap = Buffer.from(cleanedBase64, "base64"); | |
console.log("Writing files..."); | |
fs.writeFileSync(`${assetsFolderOut}/copy-${file2}`, bitmap); | |
fs.writeFileSync("assets/out/base64.txt", cleanedBase64); | |
console.log("Finished"); | |
}); | |
// Troisième READSTREAM | |
readStream3.on("data", function(data, linecount) { | |
const lineConverted = Buffer.from(data).toString("base64"); | |
base64str.push(lineConverted); | |
}); | |
readStream3.on("close", function() { | |
cleanedBase64 = base64str.join(""); | |
const bitmap = Buffer.from(cleanedBase64, "base64"); | |
console.log("Writing files..."); | |
fs.writeFileSync(`${assetsFolderOut}/copy-${file3}`, bitmap); | |
fs.writeFileSync("assets/out/base64.txt", cleanedBase64); | |
console.log("Finished"); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment