繁体   English   中英

将二进制字符串写入图像文件

[英]write the binary string into an image file

在PHP中,我们可以使用此将二进制字符串写入图像文件

$binary = hex2bin($hex);
file_put_contents("myphoto.png", $binary);

它使用file_put_contents以便将其写入磁盘:

在node.js中,我们如何像file_put_contents这样实现。

编辑:我按照评论的建议尝试了此操作,但它给了我一个错误

 var binarydata = fs.readFileSync('mybin.txt',{flag:'w'});

        fs.writeFileSync( 'myphoto.png', binarydata );


Error: EPERM, operation not permitted
    at Error (native)
    at Object.fs.readSync (fs.js:552:19)
    at Object.fs.readFileSync (fs.js:389:28)

先感谢您。

这应该为您工作:

var fs = require( 'fs' );
var wstream = fs.createWriteStream( 'myphoto.jpg' );
wstream.write( $binary );
wstream.end();

这是node.js fs-module的文档: https : //nodejs.org/api/fs.html

如果要在使用完毕后做点事

fs.writeFileSync( 'myphoto.png', $binary );

还是异步执行:

var fs = require('fs');
var wstream = fs.createWriteStream('myphoto.jpg');
wstream.on( 'finish', function() {
    // do something
});
wstream.write( $binary );
wstream.end();

读取文件并写入另一个文件:

var fs = require('fs');
fs.readFile( 'temp.txt', function( err, data ) {
    if (err) throw err;

    var wstream = fs.createWriteStream( 'myphoto.jpg' );
    wstream.on( 'finish', function() {
        // do something
    });
    wstream.write( data );
    wstream.end();
});

编辑:我的代码一直在工作,它必须是'myphoto.jpg'而不是'myphoto.png';)所以解决方案不是这样做,您只需要重命名文件即可:

var fs = require('fs');
fs.renameSync( 'temp.txt', 'myphoto.jpg' );

或者如果您需要您的temp.txt,则按以下方式复制它:

var fs = require('fs');
fs.createReadStream( 'temp.txt' ).pipe( fs.createWriteStream( 'myphoto.jpg' ) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM