Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2004, 14:41   #21
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Ecco un nuovo modo di convertire i colori ma che generano un errore:

The specified ColorModel is incompatible with the image SampleModel

Il modo è:

public class Converting_1{

public static void main (String args[]) throws IOException {

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

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

RenderedOp image = JAI.create("fileload", "C:/a/01.jpg");
ParameterBlock pb = new ParameterBlock();
ColorModel colorModel = new ComponentColorModel(cmykColorSpace,
true,
image.getAsBufferedImage().isAlphaPremultiplied(),
image.getColorModel().getTransparency(),
image.getAsBufferedImage().getRaster().getDataBuffer().getDataType());
pb.addSource(image).add(colorModel);
RenderedOp dst = JAI.create("ColorConvert", pb);

JAI.create("filestore", dst, "C:/a/001.jpg", "JPEG", null);

}
}

Dovrebbe funzionare però!!!
Boh magari a qualcuno è utile (:
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 14:56   #22
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Alla fine ho provato la conversione di un jpg in rgb in un tiff cmyk.

L'immagine viene più scura, però (stando a "The Gimp") i valori "nero" non sono tutti uguali.

quel jai.create è deprecato.

rilancio con un esempio ai posteri.

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);
				
			ComponentColorModel colorModel = new ComponentColorModel(
				cmykColorSpace,
				false,
				image.isAlphaPremultiplied(),
				image.getTransparency(),
				image.getRaster().getDataBuffer().getDataType());
			
			BufferedImage convertedImage = cmykConversion.createCompatibleDestImage(image, colorModel);
			
			cmykConversion.filter(image, convertedImage);
			
			FileStoreDescriptor.create(
				convertedImage,
				"z:\\immagine.tiff",
				"tiff",
				null,
				null,
				null);
			
		} catch(IOException e) {
			System.out.println(e);
		}
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 15:15   #23
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Ok... allora posso abbassare la testa.

Il problema è che il nero, con questa conversione, viene perso per strada.

Mi è stato detto di implementare l'inverso di uno di questi algoritmi:

/* Adobe PhotoShop algorithm */
cyan = Math.min(255, cyan + black);
magenta = Math.min(255, magenta + black);
yellow = Math.min(255, yellow + black);
rgb[0] = 255 - cyan;
rgb[1] = 255 - magenta;
rgb[2] = 255 - yellow;

/* GNU Ghostscript algorithm */
int colors = 255 - black;
rgb[0] = colors * (255 - cyan)/255;
rgb[1] = colors * (255 - magenta)/255;
rgb[2] = colors * (255 - yellow)/255;

Sembrerebbe una kakkiata ma io non ho la più pallida idea di come fare

leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 17:04   #24
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
In via del tutto teorica (bello concreto come al solito eh? ), una volta ottenuto un Buffer cmyk con il "creare compatible dest" potresi "pigliare" il suo Raster ed impostare i valori c,m,y e k dei pixel.

In via pratica, la mia marmotta "pixel-per-pixel" mi viene grigio chiaro chiaro.

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);
	
	final BufferedImage image = ImageIO.read(new File("z:\\marmotta.jpg"));
		
	final ColorConvertOp cmykConversion = new ColorConvertOp(
		image.getColorModel().getColorSpace(),
		cmykColorSpace,
		null);
		
	ComponentColorModel colorModel = new ComponentColorModel(
		cmykColorSpace,
		false,
		image.isAlphaPremultiplied(),
		image.getTransparency(),
		image.getRaster().getDataBuffer().getDataType());
	
	convertedImage = cmykConversion.createCompatibleDestImage(image, colorModel);
				
	WritableRaster raster = convertedImage.getRaster();
	for(int i = 0; i < convertedImage.getWidth(); i++) {
		for(int j = 0; j < convertedImage.getHeight(); j++) {
			int rgb = image.getRGB(i, j);
			int r = (rgb >> 16) & 0xff;
			int g = (rgb >> 8) & 0xff;
			int b = rgb & 0xff;
			
			/* conversione semplice rgb cmyk 
			
			K=255-(max(R,G,B));
			C=((255-R)-K)/(255-K);
			M=((255-G)-K)/(255-K);
			Y=((255-B)-K)/(255-K);*/

			int k = r > g ? r : g;
			k = k > b ? k : b;
			
			k = 255 - k;
			
			int div = 255 - k;
			
			int c = div != 0 ? ((255 -r)-k) / div : 0;
			int m = div != 0 ? ((255-g)-k) / div : 0;
			int y = div != 0 ? ((255-b)-k) / div : 0;
			
			raster.setPixel(i, j, new int[] {c,m,y,k});
		}
	}
	
	convertedImage.setData(raster);
Spero che sia perchè ho trovato la formula sbagliata della conversione. Comunque stò raschiando il fondo del barile
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 17:38   #25
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Giuro che se non dovessi sfondare come programmatore il tuo avvenire è proiettato verso la comicità!!!

La marmotta pixel per pixel è stata l'apoteosi.
Ancora rido!

Grazie mille ancora
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 08:14   #26
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Domanda:

Ma ci deve mettere molto?
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 13:15   #27
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Ti diro, se cerco di visualizzare l'immagine cmyk in un'etichetta, attraverso un ImageIcon, ci mette 6000 anni, se devo salvarla e basta lo fa in un paio di secondi.

Il ciclo sui pixel invece è piuttosto rapido
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 13:46   #28
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Al posto del tuo algoritmo ho utilizzato questo:

int k = r > g ? r : g;
k = k > b ? k : b;

k = (255-k);

int c = r != 0 ? ((255-r)-k) : 255;
int m = g != 0 ? ((255-g)-k) : 255;
int y = b != 0 ? ((255-b)-k) : 255;


e magicamente la marmotta prende colore (:

Ora il problema riguarda solo l'algoritmo di conversione.
Infatti con questo viene fuori un'immagine più che buona ma sempre un pò sbiadita!

Purtroppo non me lo poso permettere. Conosci/ete un sito dove reperire altri algoritmi di conversione (o algoritmi veri e propri)?
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 16:04   #29
leox_80
Member
 
Iscritto dal: Feb 2004
Messaggi: 67
Mi ci sono molto ( e sottolineo molto) avvicinato con questo:

int k = r < g ? r : g;
k = k < b ? k : b;

int div = (255-k);

int c = div!=0 ? (255 - (255*r)/div) : 0;
c = c < 0 ? 0 : c;
int m = div!=0 ? (255 - (255*g)/div) : 0;
m = m < 0 ? 0 : m;
int y = div!=0 ? (255 - (255*b)/div) : 0;
y = y < 0 ? 0 : y;

k = r > g ? r : g;
k = k > b ? k : b;
k = 255-k;


Però il bianco è troppo lucente!
(sono fiero perchè l'ho scritto io )
leox_80 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 17:17   #30
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Prova a vedere se qui si capisce qualcosa

http://research.microsoft.com/~holla...olor/cmyk.html

Dovrebbe essere una spiegazione sul formato cmyk
PGI è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
OpenAI e Jony Ive hanno un problema: il ...
Dacia stupisce con Hypster. Nascono le K...
Dacia svela Spring 2026: nuova batteria ...
Lunedì sera tiratela lunga: a mez...
Il prossimo pieghevole di Huawei potrebb...
Euro digitale nel 2027 con app e infrast...
Galaxy S26 Ultra: tra le novità c...
OneDrive avrà presto una nuova app per W...
Il nuovo OnePlus 15 è pronto: il ...
Non serve essere Prime: 7 offerte bomba ...
Ci sono un sacco di prodotti con lo scon...
Xbox Game Pass, gli aumenti di prezzo pe...
I nuovi top di gamma di HONOR sono pront...
Il Garante della Privacy ha bloccato Clo...
C'è un nuovo operatore virtuale s...
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: 05:59.


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