[英]Does JIMP (nodeJS) create bmp files from top-to-bottom? Is there a way to reverse this?
我正在嘗試在nodeJS中生成bmp
圖像(圖形),以便在C中使用以在低分辨率顯示器上顯示。
創建圖形(使用d3.js)並將svg代碼轉換為bmp可以正常工作(通過svg2img和Jimp),並且一切都正確顯示在bmp文件中。
當我嘗試在低分辨率屏幕上顯示它時,C代碼報告圖像高度為負數並且失敗。 現在,我了解到bmp可以從上到下或從下到上存儲( 例如在這里 )。
Jimp朝哪個方向工作,如何將其逆轉?
我已經再次轉換了使用Jimp生成的bmp(使用XnConvert),並嘗試了生成的bmp,該bmp確實已成功顯示在低分辨率屏幕上。
在節點中:
svg2img(body.select('.container').html(), function(error, buffer) {
//returns a Buffer
fs.writeFile('foo1.png', buffer, function(){
Jimp.read('./foo1.png')
.then(image => {
// Do stuff with the image.
image.background(0xffffffff).resize(1200, 500);
image.dither565();
image.write("./public/test.bmp"); // save
})
.catch(err => {
// Handle an exception.
res.send("error1");
});
});
});
在C腳本日志中:
BMP_cfSize:1800054
BMP_cfoffBits:54
BMP_ciSize:40
BMP_ciWidth:1200
BMP_ciHeight:-500 <---------------------
//etc.
*****************************************
total_length:1800000,1800000
bytesPerLine = 3600
imageSize = -1800000
有沒有辦法恢復吉普的訂單? 還是我想念其他東西? 還是更容易嘗試還原C庫中的順序(我對C不太滿意)?
正如評論中所指出的那樣,使Jimp 在此行中使用的bmp-js庫中的負值變為正值可以翻轉圖像,但也解決了C庫要求該順序的問題。
在Jimp中使用image.flip(false,true),我可以在最終結果中保持正確的方向。
問題在bmp-js GitHub中報告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.