Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    [Java]Gestire/creare immagini usando valori RGB

    non è chiaro dal titolo, comunque vi spiego: ho un codice esadecimale che corrisponde a un'immagine(a valori RGB per la precisione)... non avendo trovato del software in giro che mi faccia questa conversione, avevo pensato di farlo da me. Quindi dovrebbe prendere questo codice hex e dividerlo a 6 a 6, poi convertire queste cifre con il valore hex corrispondente, successivamente prendere tutti i valori RGB e costruire(creare) l'immagine.
    Problema: non ho la più pallida idea di dove iniziare!... ci sono classi java che possono aiutarmi? o qualche classe che crea immagini partendo da valori RGB, non so...
    mi servirebbe qualche consiglio, anzi più di qualche

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Non mi è molto chiaro quel "codice esadecimale che corrisponde a un'immagine"..cosa intendi?In caso posta un esempio..
    Comunque nel caso tu abbia , o riesca ad avere , l'immagine in forma di array di pixel RGB puoi creare l'immagine così:

    codice:
    int [] pixel = ...; 
    BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    img.getRaster().setPixels(0, 0, width, height, pixels);

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    mi spiego meglio: ho un codice esadecimale (hex), che corrisponde a valori RGB (raggruppando la stringa hex a mini stringhe di lunghezza 6)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Originariamente inviato da John360
    mi spiego meglio: ho un codice esadecimale (hex), che corrisponde a valori RGB (raggruppando la stringa hex a mini stringhe di lunghezza 6)
    Ma come la ottieni questa stringa?da dove la prendi??
    Bè dividere la stringa in sottostringhe è semplicissimo basta ciclare e con il metodo substring estrai
    per trasformare da esadecimale a decimale c'è il metodo di Integer:
    codice:
    int n = Integer.parseInt (stringaInEsadecimale, intRappresentanteLaBase);
    e poi puoi salvarli in un array di int per poi procedere come sopra , del tipo:

    codice:
    String esadecimale = ...;
    int [] pixels = new int [esadecimale.length () / 6];
    for (int i = 0 ; i<pixels.length ; i++) {
         pixels [i] = Integer.parseInt(esadecimale.substring (i * 6 , (i+1) * 6) , 16);
    }
    //crei l'immagine
    BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    img.getRaster().setPixels(0, 0, width, height, pixels);

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    nono il problema non è dividere, quello è molto semplice, il problema è convertire le sotto stringhe in valori RGB (avevo pensato di farlo attraverso una Map, per poi salvare i valori rgb in un'altra struttura dati) e poi creare un'immagine con questi valori rgb pixel per pixel. Spero di essermi spiegato meglio ora

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    gentilmente mi spieghi meglio come funzionano le 2 ultime righe di codice?
    Codice PHP:
    BufferedImage img = new BufferedImage(widthheightBufferedImage.TYPE_INT_RGB);
    img.getRaster().setPixels(00widthheightpixels); 

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.