嘿所有,奇怪的问题。我的公司有另一家公司的应用程序,它记录了通过以太网连接的摄像机拍摄的图像。他们的应用程序是用C ++编写的,我一直在尝试使用Java转换/破解它。
我能够收到图像,但质量不一样。顶部的照片来自他们的应用程序,底部的照片来自我的:
知道为什么这些工件出现在我用Java编写的应用程序版本中? BMP和JPG图像都会发生这种情况。
它的工作方式只是通过套接字(包括C ++和Java版本)......发送命令来捕获图像,摄像机通过发送数据(字节)进行响应。我保存一个字节数组,然后从它们创建一个新的BufferedImage:
// Create buffered image from bytes
image = ImageIO.read(new ByteArrayInputStream(imageBytes));
感谢您的任何意见或建议。
答案 0 :(得分:1)
这看起来像调色板问题,即各个像素的数值保持不变,但是将这些值映射到实际RGB值的表格可能会混乱(实际上,查看特定图片,甚至可能是来源是BW而你的是彩色的)。我的猜测是传输不问题。如果你愿意,尝试发送一个已知的字节串来确认,但我会进一步专注于图像编码。
答案 1 :(得分:1)
可能是数据类型问题吗?什么是数据格式? (整数,短裤,无符号短裤?)