相关疑难解决方法(0)

如何在此代码中替换com.sun.image.codec.jpeg.JPEGImageEncoder?

我习惯com.sun.image.codec.jpeg.JPEGImageEncoder在我的webapp中处理JPEG图像,如图表和其他图像.现在,我正在更新我的机器以使用JDK7,但是这个版本不赞成这个类.以下是我需要更改的代码:

public void processChart(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("image/jpeg");
    out = response.getOutputStream();
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires",0);
    try {
        int w = Integer.parseInt(request.getParameter("WIDTH"));
        int h = Integer.parseInt(request.getParameter("HEIGHT"));
        java.awt.image.BufferedImage ChartImage = new java.awt.image.BufferedImage(w,h,java.awt.image.BufferedImage.TYPE_INT_RGB);
        java.awt.Graphics2D ChartGraphics = ChartImage.createGraphics();
        Chart c = getChart(request);
        c.setSize(w,h);
        c.paint(ChartGraphics);
        // CODE BELOW TO CHANGE...
        com.sun.image.codec.jpeg.JPEGImageEncoder encoder = 
                                 com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(out);
        encoder.encode(ChartImage);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private Chart getChart(HttpServletRequest request) {
    chartLoader loader = new chartLoader(null);
    loader.paintDirect = true;
    java.util.Enumeration ps …
Run Code Online (Sandbox Code Playgroud)

java java-7

36
推荐指数
2
解决办法
5万
查看次数

只有ImageIO.read()和ImageIO.write()后,jpeg图像颜色才会大幅改变

我一直在javax.imageio.ImageIO中使用ImageIO.read()和ImageIO.write()方法来读取和写入图像,我发现一些图像的颜色变得奇怪.

即使我改变我的代码除了只读取图像并编写它们(使用jpeg,png,gif)之外什么都不做,所有这些新图像都有同样的问题.

我是否需要在ImageIO.read/write方法之前/之后添加任何其他代码?

这是我使用的代码:

    File f = new File("obw.jpg");
    BufferedImage bi = ImageIO.read(f);
    FileOutputStream fos2 = new FileOutputStream("obw2.jpg");
    ImageIO.write(bi, "JPG", fos2);
    FileOutputStream fos3 = new FileOutputStream("obw3.gif");
    ImageIO.write(bi, "GIF", fos3);
    FileOutputStream fos4 = new FileOutputStream("obw4.png");
    ImageIO.write(bi, "PNG", fos4);
Run Code Online (Sandbox Code Playgroud)

我的环境:

    java version "1.6.0_35"
    MacOSX 10.8.2
Run Code Online (Sandbox Code Playgroud)

原始图片: 在此输入图像描述

读写后的图像之一:

在此输入图像描述

java image image-processing

16
推荐指数
1
解决办法
7599
查看次数

使用ImageIO.read时出现问题

好的,我有一个我想读的图像.问题是Image.read(file)返回NULL.

File file = new File("C:\\images\\image1.jpg");
if(file.exists()){
    System.out.println("Image file exists.");
    BufferedImage originalImage = ImageIO.read(file);

}
Run Code Online (Sandbox Code Playgroud)

因此图像存在但ImageIO.read(file)返回NULL.没有抛出的错误没有!这是怎么回事?

这是我到目前为止所尝试的:

  1. 好的,我的环境是Windows 7.我测试了Windows附带的其中一个图像,并且能够读取图像.
  2. image1.jpg是由另一个系统创建的.现在确定他们使用的是什么方法.
  3. 我尝试将图像转换为RGB,如此处建议链接文本, 但它失败了"不是JPEG文件:以0x4d 0x4d开头".
  4. 图片扩展名是.jpg,但是Windows表示它是JPEG类型?这令人困惑.

有人可以帮忙吗?我是新手,不知道如何解决这个问题.

好吧,我只是想通了ImageIO.getImageReaders(stream)返回一个空的Iterator.这意味着它找不到合适的读卡器?我怎么读这个图像?

java applet swing image image-processing

12
推荐指数
2
解决办法
1万
查看次数

如何在ColdFusion(Java)中在CMYK和RGB之间转换图像?

我需要将图像从CMYK转换为RGB - 不一定再回来了,但是嘿,如果可以的话......

随着ColdFusion 8的发布,我们获得了CFImage标签,但它不支持这种转换; Image.cfcAlagad的Image Component也没有.

但是,应该可以用Java; 我们可以通过CF来利用它.例如,以下是创建Java线程以休眠进程的方法:

<cfset jthread = createObject("java", "java.lang.Thread")/>
<cfset jthread.sleep(5000)/>
Run Code Online (Sandbox Code Playgroud)

我猜可以使用类似的方法来利用java来进行这种图像转换,但不是Java开发人员,我不知道从哪里开始.任何人都可以在这里伸出援手吗?

java coldfusion image

8
推荐指数
2
解决办法
1万
查看次数

对于jpg文件,ColdFusion IsImageFile失败

看起来完全相同的2个jpg图像(上面的图像失败,no.jpg,重新保存为yes.png)但根据IsImageFile函数,一个不是图像.

运行此代码

#IsImageFile("http://fdiapp.com/ini/cms/file_uploads/yes.jpg")#
**
#IsImageFile("http://fdiapp.com/ini/cms/file_uploads/no.jpg")#
Run Code Online (Sandbox Code Playgroud)

coldfusion coldfusion-9

5
推荐指数
1
解决办法
865
查看次数

如何在TYPE_3BYTE_BGR中获取jpeg图像的rgb值?

我有这个图像:

谷歌图片

我想在一个中提取这个图像的RGB值int[].这是我到目前为止为PNG图像所做的事情:

File f = new File("t.jpg");
BufferedImage img = ImageIO.read(f);
int[] ib = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
Color c = new Color(ib[0]);
System.out.println(c.getRed() + " " + c.getGreen() + " " + c.getBlue());
Run Code Online (Sandbox Code Playgroud)

但是在这里我得到了这个输出:255 128 128由于我清楚地看到(并且已经在几个图像编辑器中验证过)(0,0)处的像素具有这些值,所以这是预期的255 255 255.

我注意到返回的类型img.getType()等于TYPE_3BYTE_BGR所以我猜这是在场景后面发生的解码问题,但我无法弄清楚如何解决它(或者更清楚地了解正在发生的事情).

有没有人会对如何正确解码这种类型提出建议?

java rgb jpeg image image-processing

5
推荐指数
1
解决办法
6289
查看次数

ImageIO 为 60x45, 0.5MB 抛出 IIOException - 读取过程中的 JPEG 图像文件

我有一个奇怪的 JPEG 图像文件 ImageIO.read() 无法加载:

ImageIO.read(new URL("http://nocturne.wmw.cc/a.jpg"));
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Exception in thread "main" javax.imageio.IIOException: Unsupported Image Type
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:995)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:966)
    at javax.imageio.ImageIO.read(ImageIO.java:1448)
    at javax.imageio.ImageIO.read(ImageIO.java:1400)
    at Main.main(Main.java:23)
Run Code Online (Sandbox Code Playgroud)

图片网址

java metadata image

4
推荐指数
1
解决办法
3803
查看次数

在 Java 中检测图像编码

我正在接受用户输入的图像。我只想允许 JPEG 图像。图像作为 InputStream 到达(myInputStream下面称为)。在下面的代码中,返回的 IteratorImageIO.getImageReaders()始终为空。

ImageInputStream imageInputStream = ImageIO.createImageInputStream(
    myInputStream);
Iterator<ImageReader> iter = ImageIO.getImageReaders(imageInputStream);
if (!iter.hasNext()) {
    // this always happens
}
ImageReader reader = (ImageReader) iter.next();
if (!reader.getFormatName().equals("jpeg")) {
    // haven't got this far yet
}
Run Code Online (Sandbox Code Playgroud)

我也试过myInputStream直接传递到ImageIO.getImageReaders()相同的结果。

java javax.imageio

2
推荐指数
1
解决办法
3436
查看次数

需要帮助来删除我的java图形代码中的异常

我正在开发一个应用程序,它有5个选项卡,对图像进行以下5个操作:无操作,颜色转换,仿射变换,卷积和查找.

这是代码:

import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.awt.image.LookupOp;
import java.awt.image.LookupTable;
import java.awt.image.ShortLookupTable;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;


public class ImageProcessing extends JFrame{
BufferedImage source;
public static void main(String args[])
{
    try {
         UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
    } catch (Exception e1){e1.printStackTrace();}
    SwingUtilities.invokeLater(new Runnable(){public void run(){new ImageProcessing();}});
}

public ImageProcessing() {
    // TODO Auto-generated constructor stub
    super("Image Processing");
    setSize(600,400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    try
    { …
Run Code Online (Sandbox Code Playgroud)

java swing graphics2d

2
推荐指数
1
解决办法
639
查看次数