Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iz slike u int[][] i obrnuto

[es] :: Java :: Iz slike u int[][] i obrnuto

[ Pregleda: 2048 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Iz slike u int[][] i obrnuto14.06.2007. u 23:00 - pre 204 meseci
Nikad se nisam bavio slikama u Javi, a sada mi treba bez mnogo ulazenja u detalje.

U principu, sledece dve metode bi mi bile potrebne:

Code:

public int[][] getPixels(File file);

public void saveImage(int[][] pixels, File file);


Pritom, neophodno je da izmedju poziva prve i druge metode uradim modifikaciju matrice.

Pa ako neko ko je vican moze na brzaka ovo da mi implementira? :)
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Iz slike u int[][] i obrnuto15.06.2007. u 00:43 - pre 204 meseci
Izmajmunisao sam..

Code:

package probni;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImageProccesor {
    
    public static int[][] getPixels(File file) throws IOException {
        BufferedImage img = ImageIO.read(file);
        
        int w = img.getWidth(null);
        int h =  img.getHeight(null);
        
        int[][] pixels = new int[w][h];
        
        for (int i = 0; i < w; i++) {
            for (int j = 0; j < h; j++) {
                pixels[i][j] = img.getRGB(i, j);
            }
        }
        
        return pixels;
    }
    
    public static void saveImage(int[][] pixels, File file) throws IOException {
        int w = pixels.length;
        int h = pixels[0].length;
        
        BufferedImage sl = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
        
        for (int i = 0; i < w; i++) {
            for (int j = 0; j < h; j++) {
                sl.setRGB(i, j, pixels[i][j]);
            }
        }
        
        String formatName = file.getName().substring(file.getName().lastIndexOf(".") + 1);
        ImageIO.write(sl,formatName, file);
    }
    
    public static void changeSomething(int[][] pikseli) {
        for (int i = 300; i <600 ; i++) {
            for (int j = 0; j < 100; j++) {
                pikseli[i][j] = 0xFF00FF00; // green
            }
        }
    }
    
    public static void main(String[] args) {
        int[][] pikseli = null;
        
        try {
            pikseli = getPixels(new File("C:\\vugla.jpg"));
            changeSomething(pikseli);
            saveImage(pikseli, new File("C:\\vuglaModifikovana.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}


Radi sa jpg, png i bmp, ali za gif dobijam novi fajl od 0 bajtova?!

[Ovu poruku je menjao Vanja Petreski dana 15.06.2007. u 01:56 GMT+1]
 
Odgovor na temu

DeYo
Dejan Vukmirovic
developer @ Mogul
Pozarevac/Bgd/Stockholm

Član broj: 36771
Poruke: 85
*.dynamic.sbb.co.yu.

Sajt: www.linkedin.com/in/dejan..


Profil

icon Re: Iz slike u int[][] i obrnuto15.06.2007. u 11:24 - pre 204 meseci
JPG i BMP su 24-bitni formati, dok je GIF 8 bita po pikselu. Ako se dobro secam GIF cak i ne koristi RGB paletu, a ti u svom kodu koristis img.getRGB(i, j).
Verujem da je bolje da potrazis i pomoc na nekom od podforuma za dizajn.
 
Odgovor na temu

SluX

Član broj: 77091
Poruke: 56
217.24.24.*



Profil

icon Re: Iz slike u int[][] i obrnuto18.06.2007. u 18:22 - pre 204 meseci
Ok, je ovo sa rgb-om, ali je prilicno sporo.
Overi klase raster i writableraster-sa njima ces mnogo brze dobiti ono sto ti treba.
 
Odgovor na temu

[es] :: Java :: Iz slike u int[][] i obrnuto

[ Pregleda: 2048 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.