Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将bmp转换为jpeg_Javascript_Canvas_Bitmap_Jpeg_Client Side - Fatal编程技术网

使用javascript将bmp转换为jpeg

使用javascript将bmp转换为jpeg,javascript,canvas,bitmap,jpeg,client-side,Javascript,Canvas,Bitmap,Jpeg,Client Side,我已经设法手动创建上传图像的位图,通过操纵颜色通道获得8位图像。现在,我需要将位图转换为jpeg,但我需要保持位深度(单通道8位深度) 我不能使用Canvas,因为转换完成后生成的文件是24位深度的。 任何人都知道这是否可能使用JavaScript进行转换,这样我就可以在客户端进行所有的图像处理了?我想你可能混淆了和像素格式,我承认这很混乱,因为Nbits术语在任何地方都被使用,但含义完全不同 例如,我们称之为PNG-24实际上是8位*3通道(RGB),PNG-32是8位*4通道(RGBA) 但

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

我想你可能混淆了和像素格式,我承认这很混乱,因为Nbits术语在任何地方都被使用,但含义完全不同

例如,我们称之为PNG-24实际上是8位*3通道(RGB),PNG-32是8位*4通道(RGBA)

但简单地说,JPEG格式不支持索引颜色,它总是(至少)*TrueColor:3通道*8比特=>~1677万种颜色。
*由于v9,它实际上支持每个通道最多12位

由于JPEG格式本身不支持,因此无法执行您想要执行的操作(单个8位通道=>256色)

请注意,由于JPEG的工作方式(合并视觉上相似的颜色),因此无论如何用JPEG保存256色图像都没有任何意义。JPEG算法将创建回原始256位图中没有的新颜色,并且您很可能会得到一个比其等效位图更大的文件

因此,如果您真的想要单通道(256色)的8位图像,请查看支持的格式。
PNG就是其中之一,但事实上canvas在这方面帮不了你,因为canvas API只支持PNG-32(每个通道RGBA 8位)。

GIF是另一种,但我认为只有Safari支持从画布元素导出为GIF…

谢谢您的回答。从我所做的研究中,我看到了一些例子,使用设计程序,可以创建8位深度的JPEG文件。例如,如果使用Photoshop,则可以保存深度为8位(单通道颜色)的文件。我的项目要求是设置一个256色(8位深度)的JPEG灰度图像。现在我已经创建了一个带有单色通道的位图,但是我需要在不丢失位深度的情况下将其转换为jpeg,我想在客户端完成这项工作。有人能帮帮我吗?@PatriciaNascimento再一次,jpeg格式本身不支持8位彩色单通道。它很旧,但PS中的选项仅适用于PS(psd)中的图像。一旦转换回jpeg,它又是一个24位的真彩色。也许我混淆了概念,但看看视频示例,创建一个8位深度的jpeg是可能的。我试图重现视频中提到的步骤,最终的图像是一个8位深度的JPEG(单通道)。现在我尝试做同样的事情,但是使用Javscript。不,这个视频节目是从每通道16位(可能是TIFF)变成每通道8位的JPEG。但仍有3个通道x 8位。只要看,试着做相反的,设置为每通道16位。您将看到PS不允许您将其保存为JPEG格式,除非您勾选“另存为副本”。现在,检查保存的文件=>报告为8位.Hmm。。。现在我看到你在第一条评论中提到了灰度图像?这是真的吗?在这种情况下,也许真的有可能有一个单一的渠道。。。但视频中绝对没有显示这一点。