Tag: jpeg

是否有100%的Java替代ImageIO来读取JPEG文件?

我们正在使用Java2D来调整上传到我们网站的照片的大小,但是我们遇到了一个问题(一个看似旧的问题,参见: http : //forums.sun.com/thread.jspa?threadID = 5425569 ) – 一些特殊的JPEG当我们尝试ImageIO.read()包含其二进制数据的InputStream时,引发CMMException : java.awt.color.CMMException: Invalid image format at sun.awt.color.CMM.checkStatus(CMM.java:131) at sun.awt.color.ICC_Transform.(ICC_Transform.java:89) at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:516) at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(JPEGImageReader.java:1114) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage(Native Method) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1082) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:897) at javax.imageio.ImageIO.read(ImageIO.java:1422) at javax.imageio.ImageIO.read(ImageIO.java:1326) … (剪断了堆栈跟踪的剩余部分,这是我们的ImageIO.read()调用,servlet代码等) 我们将其缩小到特定相机拍摄的照片,然后我选择了一张触发此错误的照片: http : //img214.imageshack.us/img214/5121/estacaosp.jpg 。 我们注意到这只发生在Sun的JVM上(在Linux和Mac上,只是在1.6.0_20上测试过) – 一台带有OpenJDK的测试机器可以顺利读取相同的照片,这可能是由于JPEG阅读器的不同实现。 不幸的是,我们无法在生产中切换JVM,也无法使用ImageMagick( http://www.imagemagick.org/ )等本机相关解决方案。 考虑到这一点,我的问题是:是否存在替代可以处理链接照片之类的照片的ImageIO JPEG读取器? 如果没有,我们可以使用另一个100%纯Java照片大小调整解决方案吗? 谢谢!

有损压缩中的隐写术(JAVA)

我有这个用于在java中的jpeg图像中编码数据。 我正在将文本转换为二进制forms,并将其插入LSB(取决于用户选择的内容.1,2,3,4),每个像素中的RGB从(0,0)到(宽度,高度) 。 outer: for(int i = 0; i < height; i++){ for(int j = 0; j < width; j++){ Color c = new Color(image.getRGB(j, i)); int red = binaryToInteger(insertMessage(integerToBinary((int)(c.getRed())),numLSB)); int green = binaryToInteger(insertMessage(integerToBinary((int)(c.getGreen())),numLSB)); int blue = binaryToInteger(insertMessage(integerToBinary((int)(c.getBlue())),numLSB)); Color newColor = new Color(red,green,blue); image.setRGB(j,i,newColor.getRGB()); } } gui.appendStatus("Binarized message is: " + binarizedMessage); File output = […]

如何从video中获取帧样本(jpeg)(mov)

我想从带有java的video文件(mov)中获取帧样本(jpeg)。 是否有捷径可寻。 当我在谷歌中搜索时,我发现只能从多个jpgs制作mov。 我不知道也许我找不到合适的关键字。

Java中的无损JPEG旋转(90/180/270度)?

是否有用于以90度为增量旋转JPEG文件的Java库,而不会导致图像质量下降?

图像resize并在JPanel或JLabel中显示而不会降低质量

我正在开发一个java程序,以便在注册时使用网络摄像头捕获员工图像。 我可以毫无问题地获得图片,并将其保存在我的C:驱动器中,但在检索图像时,只有部分图像显示在标签上。 有没有办法在保存之前重新调整JPEG大小? 还是在显示之前? 喜欢缩小它没有质量损失…. 非常感谢Cheerz! :)! 好的伙计……这里说: – 我已经按照我使用它们的方式对代码进行了评论。 //This method will capture the image from the interface and save it under the unique employee ID public String captureImage(int picId){ FrameGrabbingControl ControlFG = (FrameGrabbingControl) broadcast.getControl(“javax.media.control.FrameGrabbingControl”); Buffer buffer = ControlFG.grabFrame(); BufferToImage image = new BufferToImage((VideoFormat)buffer.getFormat()); img = image.createImage(buffer); path=”c:\\employee”+picId+”.jpg”; saveJPG(img,path);//method will save the image return […]

使用java将透明gif / png转换为jpeg

我想使用Java将gif图像转换为jpeg。 它适用于大多数图像,但我有一个简单的透明gif图像: 输入gif图像http://img292.imageshack.us/img292/2103/indexedtestal7.gif [如果图像丢失:它是一个蓝色圆圈,周围有透明像素] 当我使用以下代码转换此图像时: File file = new File(“indexed_test.gif”); BufferedImage image = ImageIO.read(file); File f = new File(“indexed_test.jpg”); ImageIO.write(image, “jpg”, f); 此代码可以在不抛出exception的情况下工作,但会导致无效的jpeg图像: 输出jpeg图像http://img297.imageshack.us/img297/3493/indexedtest1qe5.jpg [如果图像丢失:IE无法显示jpeg,Firefox会显示无效颜色的图像。] 我正在使用Java 1.5。 我还尝试使用gimp将示例gif转换为png并使用png作为Java代码的输入。 结果是一样的。 这是JDK中的错误吗? 如何在没有第三方库的情况下正确转换图像? 更新: 答案表明jpeg转换无法正确处理透明度(我仍然认为这是一个错误)并建议使用预定义颜色替换透明像素的解决方法。 这两种建议的方法都非常复杂,所以我实现了一个更简单的方法(将作为答案发布)。 我接受了第一个已发布的答案(Markus)。 我不知道哪种实现更好。 我选择最简单的一个,但我发现它不能正常工作。

如何识别byte 的内容是jpeg?

我有一个小字节数组(25K以下),我收​​到并解码为更大的消息信封的一部分。 有时这是一个图像,当它是图像,有时它是一个jpg。 我没有除字节数组之外的上下文信息,并且需要识别它是否是图像,以及图像是否为jpg类型。 是否有一些神奇的数字或魔术字节存在于开头,结尾或某些偏移处,我可以看一下来识别它? 我的代码示例如下(来自内存,而不是c / p): byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope(); if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){ if(areTheseBytesAJpeg(messageBytesAfterDecode)){ doSomethingWithAJpeg(messageBytesAfterDecode) }else{ flagEnvelopeAsHavingBadContentInTheField(); } } 我真的需要做什么 areTheseBytesAJpeg(byte[] mBytes){} 方法,甚至指向详细说明的规范的指针。 我希望有一个非常快速的方法来做出这个决定,因为我真的不想把它们读成图像等等。