Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2004, 11:15   #1
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
[java]ColorModel CMYK

Non vi do tregua...

Devo ottenere una conversione da rgb a cmyk e so che devo passare per questa operazione:

ICC_ColorSpace iccp = new ICC_ColorSpace(ICC_Profile.getInstance(ICC_Profile.icSigCmykData)); (o almeno credo )

reperita dal seguente sito:

http://java.sun.com/products/java-me...rs/jaifaq.html

Ma non so come ottenere il ColorModel.

Arigrazie

(se avete altre soluzioni ripeto non esitate a postarle)

Ultima modifica di leox_80 : 24-02-2004 alle 11:19.
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 12:22   #2
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Io proverei con un java.awt.image.ComponentColorModel

ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)


gli passi il tuo ICC_color space, gli altri parametri li ricavi dall'immagine da convertire (dovrebbe esserci un metodo in BufferedImage per ognuno) e poi via, alla bersagliera.

Dici che non può funzionare?
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 13:42   #3
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
che mal di testa ragazzi ... evviva i tempi ristretti!!!!!!!

Mo vedo che riesco a tirarne fuori, grazie ancora, se trovo la soluzione posto anche quella (:
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 13:59   #4
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
ColorModel colorModel = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.TYPE_CMYK),bits, false, false, 1, DataBuffer.TYPE_BYTE);

ecco come dovrebbe essere fatto,

dico dovrebbe perchè il risultato è:

java.lang.IllegalArgumentException: Unknown color space
at java.awt.color.ColorSpace.getInstance(ColorSpace.java:329)
at Image.immagini.ris.main(ris.java:36)
Exception in thread "main"

mannaggia la miseriaccia!!!!!!!!


il problema è il ColoSpace.TYPE_CMYK perchè se lo setto a ColoSpace.CS_GRAY il risultato è una immagine a scala di grigio!
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 14:12   #5
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Non riesci a passargli il color space di prima?

ICC_ColorSpace iccp = new ICC_ColorSpace(ICC_Profile.getInstance(ICC_Profile.icSigCmykData));

In pratica dovresti (credo) usare un costruttore del JRE standard passandogli un "colorspace" di JAI...me so' spiegato bbene no?
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 14:15   #6
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
MADOOOOONNA non ci posso credere, ho cambiato il codice in

ICC_ColorSpace iccp = new ICC_ColorSpace(ICC_Profile.getInstance(ICC_Profile.icSigCmykData));
ColorModel colorModel = new ComponentColorModel(iccp ,bits, true, false, 1, DataBuffer.TYPE_BYTE);

e pensa un pò?!?!?!?!?!?!?!?!?!?!

non funziona lo stesso... stesso errore
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 14:41   #7
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Codice:
try {	
	BufferedInputStream inBuffer = new BufferedInputStream(
		new FileInputStream("Z:\\Software Downloads\\JAICMM\\CMYK.pf"));
	
	ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);
	
	ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);
	
} catch(IOException e) {
	System.out.println(e);
}
Qui la costruzione dell'ICC_ColorSpace non sembra generare errori.

Ho usato il metodo getInstace(InputStream) passandogli come stream un flusso diretto ad uno dei profili ICC scaricati dal sito di Sun.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 14:47   #8
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
mi manderesti i profili?

oppure il link da dove scaricarli

Grazie
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 14:51   #9
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
http://java.sun.com/products/java-me...oad-1_1_2.html

scorri la pagina verso il basso, c'è il pacchetto JAICMM
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 15:02   #10
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Grazie ancora, l'ho scaricato e implementato!

Ora non mi completa il file tiff UAAAAAAAAAAAAAAAAH.

Bella idea comunque. Grazie ancora per l'aiuto
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 15:02   #11
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Qui mi viene una cosa di questo tipo:

Codice:
try {
	BufferedInputStream inBuffer = new BufferedInputStream(
		new FileInputStream("Z:\\Software Downloads\\JAICMM\\CMYK.pf"));
	
	ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);
	
	ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);
	
	BufferedImage image = ImageIO.read(new File("z:\\marmotta.jpg"));
		
	ColorConvertOp cmykConversion = new ColorConvertOp(
		image.getColorModel().getColorSpace(),
		cmykColorSpace,
		null);
		
	BufferedImage convertedImage = cmykConversion.filter(image, null);
	
} catch(IOException e) {
	System.out.println(e);
}
Senza usare JAI (i profili funzionano anche con il JRE standard, 1.4 o sup.) e senza ColorModel.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 15:14   #12
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
si ma io ho a che fare con delle tiff e non delle jpeg...

ora provo poi ti faccio sapere
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 16:21   #13
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
public class ris{
public static void main(String args[]) throws IOException{
final int XRES_TAG = 282;
final int YRES_TAG = 283;
int[] resolution = { 304, 1};

String input = "C:/a/01.tif";
String output = "C:/a/nuovo.tiff";

FileSeekableStream stream = new FileSeekableStream(input);
//RenderedImage image1 =(RenderedImage) JAI.create("stream",stream);
RenderedOp image3 = JAI.create("stream",stream);
image3.getAsBufferedImage();

TIFFField xRes = new TIFFField(XRES_TAG, TIFFField.TIFF_SRATIONAL, 1, new int[][] { resolution });
TIFFField yRes = new TIFFField(YRES_TAG, TIFFField.TIFF_SRATIONAL, 1, new int[][] { resolution });
TIFFEncodeParam tep = new TIFFEncodeParam();

tep.setExtraFields(new TIFFField[] { xRes, yRes});

OutputStream out = new SeekableOutputStream(new RandomAccessFile(output,"rw"));
tep.setCompression(TIFFEncodeParam.COMPRESSION_NONE);


//ICC_ColorSpace iccp = new ICC_ColorSpace(ICC_Profile.getInstance(ICC_Profile.icSigCmyData));
BufferedInputStream inBuffer = new BufferedInputStream(new FileInputStream("C:/profili/CMYK.pf"));

ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);

ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);

ColorConvertOp cmykConversion = new ColorConvertOp(image3.getColorModel().getColorSpace(),cmykColorSpace, null);

BufferedImage convertedImage = cmykConversion.filter(image3.getAsBufferedImage(), null);


ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF",out, tep);
encoder.encode((RenderedImage)convertedImage);
out.close();

}
}

Questo è quanto. La conversione è effettuata e anche se photoshop dice che è in cmyk io dico di no.
Questo perchè l'immagine che viene fuori e molto più scura dell'originale e se si va con il contagocce a vedere la gamma dei colori, cambiano soltanto i valori di c m e y ma mai di k! (anche sul nero).
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 17:14   #14
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Andando per tentativi proverei allora a far creare all'engine Java un Buffer compatibile prima di copiargli sopra i dati convertiti.

Codice:
BufferedInputStream inBuffer = new BufferedInputStream(
	new FileInputStream("Z:\\Software Downloads\\JAICMM\\CMYK.pf"));

ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);

ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);

BufferedImage image = ImageIO.read(new File("z:\\marmotta.jpg"));
	
ColorConvertOp cmykConversion = new ColorConvertOp(
	image.getColorModel().getColorSpace(),
	cmykColorSpace,
	null);
	
ComponentColorModel colorModel = new ComponentColorModel(
	cmykColorSpace,
	false,
	image.isAlphaPremultiplied(),
	image.getTransparency(),
	image.getRaster().getDataBuffer().getDataType());

BufferedImage convertedImage = cmykConversion.createCompatibleDestImage(image, colorModel);

cmykConversion.filter(image, convertedImage);
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 19:48   #15
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Ok... provo domani che oggi sono finito!!!

Grazie.. poi ti faccio sapere
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 08:24   #16
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Purtroppo il risultato è lo stesso. Avevo già provato ma dall'alto della mia ignoranza ero sicuro di aver toppato qualcosa!
Comunque a me da errore con il metodo getTransparency()... dove lo hai trovato?

BufferedInputStream inBuffer = new BufferedInputStream(new FileInputStream("C:/profile/CMYK.pf"));
ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);
ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);

ColorConvertOp cmykConversion = new ColorConvertOp(image3.getColorModel().getColorSpace(),cmykColorSpace, null);

ComponentColorModel colorModel = new ComponentColorModel(cmykColorSpace,true,image3.getAsBufferedImage().isAlphaPremultiplied(),1,image3.getAsBufferedImage().getRaster().getDataBuffer().getDataType());

BufferedImage comp = cmykConversion.createCompatibleDestImage(image3.getAsBufferedImage(), colorModel);
BufferedImage convertedImage = cmykConversion.filter(image3.getAsBufferedImage(), comp);

ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF",out, tep);
encoder.encode((RenderedImage)convertedImage);
out.close();
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 10:16   #17
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
riskio di gettare la spugna...

comunque grazie PGI sei stato un grande (:
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 12:22   #18
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Calma e gesso.

Allora, c'è una svista (colpa mia) proprio su quel getTransparency() che è disponibile solo su Java 1.5.

getTransparency() restituisce un intero che può avere il valore

Transparency.OPAQUE, se l'immagine non ha un canale Alpha (es. BMP)
Transparency.BITMASK se l'immagine ha 1 bit di trasparenza (es. GIF)
Transparency.TRANSLUCENT se l'immagine ha più di 1 bit di trasparenza (es. PNG)

Prima dell'1.5 c'è lo stesso metodo per il ColorModel:

bufferedImage.getColorModel().getTransparency().
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 13:38   #19
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
La calma c'è... il gesso me lo sono sniffato!

Ho provato a fare la conversione di una semplice jpg:

BufferedInputStream inBuffer = new BufferedInputStream(
new FileInputStream("C:/profili/CMYK.pf"));

ICC_Profile cmykProfile = ICC_Profile.getInstance(inBuffer);
ICC_ColorSpace cmykColorSpace = new ICC_ColorSpace(cmykProfile);

BufferedImage image = ImageIO.read(new File("C:/a/01.jpg"));

ColorConvertOp cmykConversion = new ColorConvertOp(
image.getColorModel().getColorSpace(),
cmykColorSpace,
null);

BufferedImage convertedImage = cmykConversion.filter(image, null);

File f = new File("C:/a/nuovo.jpg");

ImageIO.write(convertedImage, "JPEG", f);


E l'immagine creata non esiste!!! Ditemelo che devo sbattere la capoccia su uno spigolo!

Più che non esistere non viene visualizzata.
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 13:55   #20
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Il problema sta nell'operazione di conversione!

Se voglio salvare l'immagine così come l'ho aperta posso farlo, quella convertita invece la salva ma con qualche errore interno che non la fa visualizzare.
leox_80 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Eni mette un tetto ai prezzi dei carbura...
BYD Seagull (Dolphin Surf), l'elettrica ...
Multa milionaria per un data center del ...
F-Droid 2.0 si aggiorna con una nuova gr...
Microsoft ridisegna Copilot: dalla chat ...
Volkswagen porterà 20 videogiochi...
Troppa IA storpia: OpenAI licenzia in tr...
Marathon, Bungie svela i contenuti dell'...
Autunno, tempo di potature: i tagliasiep...
Meta Muse, due sviluppatori riescono a o...
Google AI Pro gratis: festa a sorpresa p...
MacSync colpisce macOS usando i calendar...
L'agente IA cancella 48 mila file in 103...
Jensen Huang avverte: l'AI può aiutare a...
Elettrico Renault in arrivo in Spagna: 6...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v