java - फ़ाइल से एक बफ़र्ड छवि बनाएं और इसे TYPE_INT_ARGB करें




image image-manipulation (2)

मेरे पास एक पीएनजी फाइल है जो पारदर्शिता से भरा हुआ है और BufferedImage में संग्रहीत है I मुझे इस BufferedImage की आवश्यकता है TYPE_INT_ARGB । हालांकि, जब मैं getType() का उपयोग करता है तो लौटा मूल्य 2 ( TYPE_CUSTOM ) के बजाय 0 ( TYPE_INT_ARGB ) होता है।

इस तरह मैं .png लोड करता हूं:

public File img = new File("imagen.png");

public BufferedImage buffImg = 
    new BufferedImage(240, 240, BufferedImage.TYPE_INT_ARGB);

try { 
    buffImg = ImageIO.read(img ); 
} 
catch (IOException e) { }

System.out.Println(buffImg.getType()); //Prints 0 instead of 2

मैं .png कैसे लोड कर सकता हूँ, BufferedImage में सहेज सकते हैं और इसे TYPE_INT_ARGB बना सकते हैं?


फ़ाइल से एक बफ़र्ड छवि बनाएं और इसे TYPE_INT_RGB बनाएं

import java.io.*;
import java.awt.image.*;
import javax.imageio.*;
public class Main{
    public static void main(String args[]){
        try{
            BufferedImage img = new BufferedImage( 
                500, 500, BufferedImage.TYPE_INT_RGB );
            File f = new File("MyFile.png");
            int r = 5;
            int g = 25; 
            int b = 255;
            int col = (r << 16) | (g << 8) | b;
            for(int x = 0; x < 500; x++){
                for(int y = 20; y < 300; y++){
                    img.setRGB(x, y, col);
                }
            }
            ImageIO.write(img, "PNG", f); 
        }
        catch(Exception e){ 
            e.printStackTrace();
        }
    }
}

यह शीर्ष पर एक बड़ी नीली लकीर पेंट करता है।

यदि आप इसे एआरजीबी चाहते हैं, तो इसे इस तरह करें:

    try{
        BufferedImage img = new BufferedImage( 
            500, 500, BufferedImage.TYPE_INT_ARGB );
        File f = new File("MyFile.png");
        int r = 255;
        int g = 10;
        int b = 57;
        int alpha = 255;
        int col = (alpha << 24) | (r << 16) | (g << 8) | b;
        for(int x = 0; x < 500; x++){
            for(int y = 20; y < 30; y++){
                img.setRGB(x, y, col);
            }
        }
        ImageIO.write(img, "PNG", f);
    }
    catch(Exception e){
        e.printStackTrace();
    }

MyFile.png को खोलें, इसमें शीर्ष पर एक लाल लकीर है


try {
    File img = new File("somefile.png");
    BufferedImage image = ImageIO.read(img ); 
    System.out.println(image);
} catch (IOException e) { 
    e.printStackTrace(); 
}

मेरी छवि फ़ाइल के लिए उदाहरण का आउटपुट:

[email protected]: type = 5 ColorModel: #pixelBits = 24 
numComponents = 3 color 
space = java.awt.color.[email protected] 
transparency = 1 
has alpha = false 
isAlphaPre = false 
ByteInterleavedRaster: 
width = 800 
height = 600 
#numDataElements 3 
dataOff[0] = 2

आप System.out.println (ऑब्जेक्ट) चला सकते हैं; किसी भी ऑब्जेक्ट के बारे में और इसके बारे में कुछ जानकारी प्राप्त करें





argb