标签: bufferedimage

如何在JFrame中显示BufferedImage?

我想在同一个JFrame中显示相同图像的变体,例如在JFrame中显示图像,然后用相同图像的灰度替换它.

java swing bufferedimage jframe

15
推荐指数
3
解决办法
6万
查看次数

使用透明背景保存缓冲图像

我将签名图像保存为.jpg图片.我使用graphic2d在图像上绘制每个像素的签名(用签名平板电脑获得)并且它完美地工作但我总是得到白色背景.如果我想将签名放在PDF文档上,jpg图像的白色方块的边框覆盖了PDF的一些单词.

我想要的是用透明背景保存jpg图像,所以当我把它放在PDF上时,没有白色图像背景覆盖的文字,只有标记线.

这是保存缓冲图像的代码.它用白色背景做到了.

 // This method refers to the signature image to save
private RenderedImage getImage() {

    int width = tabletWidth;
    int height = tabletHeight;

    // Create a buffered image in which to draw
    BufferedImage bufferedImage = new BufferedImage(width, height,
            BufferedImage.TYPE_INT_RGB);

    // Create a graphics contents on the buffered image
    Graphics2D g2d = bufferedImage.createGraphics();

    // Draw graphics
    g2d.setColor(Color.WHITE);
    g2d.fillRect(0, 0, width, height);

    drawPoints(Tablet.getPenPoints(), g2d, Color.BLACK);

    // Graphics context no longer needed so dispose it
    g2d.dispose();

    return bufferedImage;
}
Run Code Online (Sandbox Code Playgroud)

我试图将它设置为透明但没有成功,所以我发布了这个工作部分.

java graphics bufferedimage background transparent

15
推荐指数
1
解决办法
3万
查看次数

操作图像而不删除其EXIF数据

使用imageIO,我经常遇到转换图像文件的问题,在覆盖它之后,它会丢失所有的EXIF数据.有没有办法保留它而不首先提取它,缓存它,然后重置它?

java bufferedimage bitmap image-resizing javax.imageio

14
推荐指数
2
解决办法
5250
查看次数

从不同包中的类加载包内的Java Image

我有一个名为MyProject的Java项目.我有几个不同的包(为了这个问题的目的,保持名称简单),如下所示:

src/PackageA
src/PackageA/PackageAa
src/PackageA/PackageAa/PackageAaa
src/PackageB
src/PackageB/PackageBa
src/PackageB/PackageBa/PackageBaa
Run Code Online (Sandbox Code Playgroud)

我上课了

src/PackageA/PackageAa/PackageAaa/MyJavaFile.java
Run Code Online (Sandbox Code Playgroud)

我有一个图像

src/PackageB/PackageBa/PackageBaa/MyImage.png
Run Code Online (Sandbox Code Playgroud)

在里面MyJavaFile.java,我想声明一个图像对象MyImage.png

Image img = new Image(....what goes here?...)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java bufferedimage image

14
推荐指数
2
解决办法
4万
查看次数

在我的Android Activity中使用BufferedImage和ImageIO类

我正在开发一个Android应用程序,可以对存储在手机中的图像进行Gamma校正.我的活动可以获取图像位置,但我不能在我的应用程序中使用 BufferedImage 类和ImageIO类.

我在使用ADT插件的Eclipse IDE中收到以下错误.

 ImageIO cannot be Resolved

 BufferedImage cannot be Resolved  
Run Code Online (Sandbox Code Playgroud)

我无法处理图像.我有一个想法,包括java库,但我不知道如何在Android中这样做

这是我需要使其工作的功能.

private static BufferedImage gammaCorrection(BufferedImage original, double gamma) {

    int alpha, red, green, blue;
    int newPixel;

    double gamma_new = 1 / gamma;
    int[] gamma_LUT = gamma_LUT(gamma_new);

    BufferedImage gamma_cor = new BufferedImage(original.getWidth(), original.getHeight(), original.getType());

    for(int i=0; i<original.getWidth(); i++) {
        for(int j=0; j<original.getHeight(); j++) {

            // Get pixels by R, G, B
            alpha = new Color(original.getRGB(i, j)).getAlpha();
            red = new Color(original.getRGB(i, j)).getRed();
            green = new Color(original.getRGB(i, …
Run Code Online (Sandbox Code Playgroud)

android bufferedimage javax.imageio

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

将Data-URL转换为BufferedImage

我有一个来自图像文件的数据URL,必须将其传递给另一个函数.沿着从Data-URL到BufferedImage的这条路径,它需要是一个byteArray.

我的方法如下:

String dataUrl;
byte[] imageData = dataUrl.getBytes();

// pass the byteArray along the path

// create BufferedImage from byteArray
BufferedImage inputImage = ImageIO.read(new ByteArrayInputStream(imageData));

// If the picture is null, then throw an unsupported image exception.
if (inputImage == null) {
    throw new UnknownImageFormatException();
}
Run Code Online (Sandbox Code Playgroud)

问题是,它总是抛出UnknownImageFormatException异常,这意味着inputImage为null,这意味着,ImageIO.read无法识别imagetype.

我使用ImageIO.getReaderFormatNames()来获取支持的文件名并得到以下列表:

Supported Formats: 
jpg, BMP, bmp, JPG, jpeg, wbmp, png, JPEG, PNG, WBMP, GIF, gif
Run Code Online (Sandbox Code Playgroud)

我尝试传递的dataURL就像:data:image/png;base64,...data:image/jpg;base64,...

据我了解,这些都在受支持的文件列表中,因此应该得到认可.

在这种情况下,还有什么可能导致inputImage为null?更有趣的是,我该如何解决?

java bufferedimage data-url javax.imageio

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

什么是ImageObserver?

绘制图像时需要图像观察者.据我所知,到目前为止,BufferedImage是一个图像观察者.但我的问题是,图像观察者的定义是什么,它做了什么?我很困惑.

java bufferedimage awt imageobserver

14
推荐指数
2
解决办法
3万
查看次数

重新调整图像大小而不会降低质量

我用这个代码调整了两个因素的图像大小.它有效,但调整大小后图像质量非常糟糕!你能帮助我吗?

这是代码

public class ImageTest {

private static final int factor1 = 3;
private static final int factor2 = 4;
public static void main(String [] args){

    JFileChooser cs = new JFileChooser();
    cs.setFileSelectionMode(cs.DIRECTORIES_ONLY);
    int i = cs.showOpenDialog(null);
    if(i==cs.APPROVE_OPTION){
        File f = cs.getSelectedFile();
        File[] ff = f.listFiles();
        for(int j=0;j<ff.length;j++){
            String end = ff[j].getName().substring(ff[j].getName().indexOf(".")+1);
            System.out.println(end);
            try{
                BufferedImage originalImage = ImageIO.read(ff[j]);
                int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
                BufferedImage resizeImageJpg = resizeImageWithHint(originalImage, type);
                ImageIO.write(resizeImageJpg, end, new File("pr/"+ff[j].getName()));
            }catch(IOException e){
                e.printStackTrace();
            }
        } …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage resize

13
推荐指数
3
解决办法
4万
查看次数

bufferedImage.getRGB(x,y)不会产生alpha

我有一个BufferedImage i,我想从包含alpha值的某个像素中获取Color.使用和坐标识别像素.image xy

这是我试过的:

Color c = new Color(i.getRGB(x, y));
Run Code Online (Sandbox Code Playgroud)

出于某种原因,新的颜色对象包含正确的RGB,但alpha会丢失.

我究竟做错了什么?

提前致谢

java rgb bufferedimage colors

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

在BufferedImage上绘制填充矩形

因此,我正在尝试创建一个可以删除包含敏感信息的调查部分的应用程序.但是我遇到了一些问题.

我想要做的是在BufferedImage上绘制填充的黑色矩形,给定x,y,宽度和所需区域的高度为黑色,然后将该新图像写回我的文件系统.这是我的代码.

        File imageFile = new File("images/template.jpg");
        BufferedImage img = ImageIO.read(imageFile);

        Graphics2D graph = img.createGraphics();
        graph.setColor(Color.BLACK);
        graph.fill(new Rectangle(x, y, width, height));
        graph.dispose();

        ImageIO.write(img, "jpg", new File("images/template.jpg"));
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,资源中的图像在此代码段之后不会更改.关于我做错了什么的任何想法?

java bufferedimage graphics2d

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