Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aiuto: BufferedImage

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    32

    Aiuto: BufferedImage

    Ciao a tutti.
    Ho un problema: devo creare un immagine(400x400) con un insieme di piccole immagini, che grazie ai metodi getRed(), getGreen() e getBlue(), riconosca come bordo est, la tripla (esempio255,255,255)) e affianchi un'altra immaggine con la stessa tripla.
    Qualcuno mi aiuti. Un consiglio conviene tagliare piccole parti da una foto, solo così si vede l'effetto. Grazie anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    un consiglio mi permetto invece di dartelo io: quando chiedi aiuto, sarebbe bello vedere un po' di codice scritto di tuo pugno (tanto per dire: "'ci ho provato, ma...") e se il progetto ha bisogno di media particolari, fornire un bel link ad un file zip con il necessario per fare un po' di prove... altrimenti il forum più appropriato sarebbe "offro lavoro (retribuito)"
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Quoto appieno le osservazioni di Andrea ed invito fisico83 a leggere il Regolamento.
    Lascio aperto nell'attesa che arrivi un op' di codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    32

    Help codice

    Scusate, di certo avete ragione. E' la prima volta che scrivo nel blog, credevo più semplice parlare del problema, invece di scrivere direttamente codice...cmq grazie del consiglio, e dunque ecco il mio codice:

    //AL MOMENTO IL METODO CONTROLLA TUTTI I COLORI DI UNA IMMAGINE
    //DEVO TROVARE IL MODO DI CONFRONTARE SOLO I BORDI PER
    //ATTACCARE UN IMMAGINE SIMILE.

    import java.io.*;
    import java.awt.*;
    import java.awt.image.*;
    import javax.imageio.*;

    public class Terzo2
    {

    public static BufferedImage openImage(String path) throws IOException
    {
    BufferedImage img = ImageIO.read(new File(path));
    return img;
    }

    /*public static void saveImage(BufferedImage img, String fileName)
    throws IOException {
    ImageIO.write(img, fileName.substring(fileName.lastIndexOf(".")+1),
    new File(fileName));
    }*/

    public static void main(String[] args)
    {

    try

    {
    BufferedImage input = openImage("1.jpg");
    BufferedImage input1 = openImage("2.jpg");
    Color oldColor, newColor,oldColor1,newColor1;
    int width = input.getWidth();
    int height = input.getHeight();
    int width1 = input.getWidth();
    int height1 = input.getHeight();
    int type = input.getType();
    int type1 = input1.getType();
    BufferedImage output;
    output = new BufferedImage(width, height, input.TYPE_INT_RGB);
    BufferedImage output1;
    output1 = new BufferedImage(width, height, input.TYPE_INT_RGB);

    for (int y=0; y<height; y++)

    {
    newColor=null;
    newColor1=null;

    for (int x=0; x<width; x++)

    {
    oldColor = new Color(input.getRGB(x, y), true);
    oldColor1 = new Color(input.getRGB(x, y), true);
    newColor = new Color((int) oldColor.getRed(), (int) oldColor.getGreen(),(int) oldColor.getBlue());
    newColor1 = new Color((int) oldColor1.getRed(), (int) oldColor1.getGreen(),(int) oldColor1.getBlue());
    output.setRGB(x, y, newColor.getRGB());
    output1.setRGB(x, y, newColor1.getRGB());
    //System.out.println(oldColor);
    //System.out.println(oldColor1);
    }

    if (newColor==newColor1)
    {
    System.out.println("Uguali");
    }
    else
    {
    System.out.println("Diversi");
    }
    }
    // saveImage(output,"Copia1.jpg");
    }

    catch (IOException e)
    {
    System.out.println(e.getMessage());
    }
    }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    visto che un'immagine viene "mappata" (almeno per quanto riguarda getRGB) in una matrice 0..width-1 x 0..height-1 i tuoi "bordi saranno"

    NORD: [0,0]..[width-1,0]
    EST: [width-1,0]..[width-1,height-1]
    SUD: [0, height-1]..[width-1,height-1]
    OVEST: [0,0]..[0,height-1]

    Pui anche convenientemente utilizzare l'altro getRGB che ritorna un array

    http://java.sun.com/javase/6/docs/ap...1;], int, int)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da fisico83
    E' la prima volta che scrivo nel blog
    Questo è un forum, non un blog...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    32

    BufferedImage o Toolkit?

    Grazie tante Andrea1979, al momento non ho ancora studiato come farlo con gli array. Ma grazie ai cicli for e alla classe Comparable sono riuscito a confrontare i bordi di 2 immagini.
    Di certo, tornerò su questo codice..grazie ancora.

    Per affiancare le immagini, devo utilizzare comunque la classe BufferedImge? Perchè stavo studiando il Toolkit, e non riesco a fare affiancare le immagini, perchè secondo voi? Ho provato con questo codice, ma non mi riesce. Potete aiutarmi?

    import java.awt.*;
    import javax.swing.*;

    //Questo esempio mostra come importare un'immagine
    //L'immmagine mantiene dimensioni fisse

    public class CImageFrame_a1 extends JFrame
    {
    public CImageFrame_a1()
    {
    setTitle("Prato");
    setSize(400,400);
    setLocation(100,100);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    Container contentPane=getContentPane();
    contentPane.add(new ImagePanel_a1());
    }

    public static void main(String[] args)
    {
    JFrame frame=new ImageFrame_a1();
    frame.setVisible(true);
    }
    }

    class CImagePanel_a1 extends JPanel
    {
    private Image logo;
    private Image logo1;

    public CImagePanel_a1()
    {
    //Recupero l'immagine tramite il Toolkit
    logo=Toolkit.getDefaultToolkit().getImage("1.jpg") ;
    //Attendo finche' l'immagine non e' stata completamente caricata
    // MediaTracker tracker=new MediaTracker(this);

    logo1=Toolkit.getDefaultToolkit().getImage("Immagi ne.jpg");
    //Attendo finche' l'immagine non e' stata completamente caricata
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(logo1,0);

    try
    {
    tracker.waitForID(0);
    }
    catch (InterruptedException e)
    {
    }
    }

    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    //Disegno l'immagine a dimensioni fisse
    g.drawImage(logo,10,10,this);
    g.drawImage(logo1,200,200,this);
    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.