Voici mon dilemme: J'ai des images RAW RGBA: une image maître (la première) et une piste de sous-titre (la seconde), et je veux les superposer d'une manière basée sur le canal alpha de la deuxième image: Si c'est zéro, alors prenez les pixels de la deuxième image, si c'est 0xFF, prenez les pixels de la première image, sinon créez une superposition de la deuxième image sur la première. Voici le code utilisé pour cela:Comment appliquer la transparence de superposition à l'image RGBA
if(frame->bytes[pc + 3] == 0xFF) /* this is NO transparency in the overlay image, meaning: take over the overlay 100% */
{
pFrameRGB->data[0][pc] = frame->bytes[pc]; // Red
pFrameRGB->data[0][pc+1] = frame->bytes[pc+1];// Green
pFrameRGB->data[0][pc+2] = frame->bytes[pc+2];// Blue
}
else
if(frame->bytes[pc + 3] != 0) /* this is full transparency in the overlay image, meaning: take over the image 100% */
{
pFrameRGB->data[0][pc] |= frame->bytes[pc]; // Red
pFrameRGB->data[0][pc+1] |= frame->bytes[pc+1];// Green
pFrameRGB->data[0][pc+2] |= frame->bytes[pc+2];// Blue
pFrameRGB->data[0][pc+3] = frame->bytes[pc+3]; // Alpha
}
Dans le code ci-dessus est la pFrameRGB l'image cible RGBA, contenant déjà SOMET l'image là, DE CADRE> octets est l'image « superposition/sous-titre » ... Et vient ici ma question: avec certaines superposition colorées/images de sous-titres la destination est trop colorée ... donc ce n'est pas comme si l'image de sous-titrage est superposée quel effet je veux obtenir mais vous pouvez voir toute une gamme de couleurs (par exemple:/image de superposition verte avec un alpha croissant et je voudrais que l'image de superposition ressemble à une superposition rouge/verte "pâle" avec l'image ci-dessous, mais avec l'approche ci-dessus je reçois beaucoup de pixels colorés sur l'image ci-dessous). Avez-vous une approche un peu meilleure à cela?
Merci, fritzone
Quelle bibliothèque? Quelle langue? – Oded