簡體   English   中英

JIMP(nodeJS)是否從上到下創建bmp文件? 有辦法扭轉這種情況嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM