Sto provando a fondere due immagini con Android, utilizzando una modalità di fusione di tipo Moltiplica.Miscelazione di due immagini insieme a moltiplicare e% opacità
// Prepare -------------------------------
// Create source images
Bitmap img1 = ...
Bitmap img2 = ...
// Create result image
Bitmap result = ...
Canvas canvas = new Canvas();
canvas.setBitmap(result);
// Get proper display reference
BitmapDrawable drawable = new BitmapDrawable(getResources(), result);
ImageView imageView = (ImageView)findViewById(R.id.imageBlend1);
imageView.setImageDrawable(drawable);
// Apply -------------------------------
// Draw base
canvas.drawBitmap(img1, 0, 0, null);
// Draw overlay
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
paint.setShader(new BitmapShader(img2, TileMode.CLAMP, TileMode.CLAMP));
canvas.drawRect(0, 0, img2.getWidth(), img2.getHeight(), paint);
questo funziona, ma non ho il controllo sulla "quantità" di moltiplicare che viene fatto - è sempre un trasferimento moltiplicano completa. Idealmente, un multiplo dello 0% sarebbe uguale all'immagine di base (img1) senza alcuna variazione, ma una moltiplicazione del 100% sarebbe il risultato che ottengo con il codice sopra.
paint.setAlpha()
non sembra funzionare per questo.
Qualsiasi altro modo per impostare l'opacità% del nuovo 'livello'?
P.S. Ci sono alcuni metodi per far funzionare il multiplo con questo immagino (usando uno LightingColorFilter
) pre-moltiplicando e sfalsando il colore in bianco, ma è molto specifico per la modalità multipla .. Sto cercando di trovare un modo per applicare l'opacità/% cosa a tutte le altre modalità di trasferimento.
Valeu rapaz. Ma sì, l'articolo è fantastico, ma si tratta solo di aggiungere layer con diverse modalità piuttosto che avere un modo per cambiare la% dei valori di input per ciascuna modalità. Mostra alcune manipolazioni dirette dei pixel dopo averli letti dall'immagine, quindi forse è un'alternativa. Dovrò indagare su questo. Per ora, grazie! – zeh
Link NON trovato, bro. Per favore aggiornare! –