繁体   English   中英

使用javascript将bmp转换为jpeg

[英]Convert bmp to jpeg using javascript

我已经设法通过操纵颜色通道以获得8位图像来手动创建上传图像的位图。 现在,我需要将位图转换为jpeg,但我需要保持位深度(8位深度单通道),我无法使用Canvas,因为完成转换后,生成的文件为24位深度。 任何人都知道是否可以使用JavaScript进行此转换,因此我可以在客户端进行所有图像处理?

我认为您在颜色深度和像素格式之间感到困惑,并且我承认这令人困惑,因为这种Nbits命名法在各处都有所使用,而含义却完全不同。

例如,我们所谓的PNG-24实际上是8位* 3通道(RGB),而PNG-32是8位* 4(RGBA)。

但简单地说,JPEG格式不支持索引颜色,它始终(至少)* TrueColor:3通道* 8bits =>〜1,677万种颜色。
*从v9开始,实际上每个通道最多支持12位

您无法执行的操作(单个8位通道=> 256色)是不可能的,因为JPEG格式本身不支持它。

请注意,由于JPEG的工作方式(合并视觉上相似的颜色),将256色图像保存为JPEG毫无意义。 JPEG算法将重新创建原始256位图中没有的新颜色,并且最终可能会得到比其位图更大的文件。

因此,如果您真的想要一个具有单个通道(256色)的8位图像,请查看确实支持Indexed colors的格式。
PNG是其中之一,但是Canvas确实无法为您提供帮助,因为Canvas API仅支持PNG-32(每通道RGBA 8位)。
GIF是另一种,但我认为只有Safari才支持从canvas元素导出到GIF ...

暂无
暂无

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

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