Fórum Canvas TextoOut em arquivos PNG #462829
03/12/2013
0
Olá,
Desenvolvi uma pequena função que mescla (combina) imagens do tipo bmp, jpg e png. Para imagens a função está funcionando perfeitamente, indo adiante resolvi inserir texto também nas imagens mescladas. Usei para isso a procedure Canvas.TextOut do bitmap mesclado. Antes de chamar essa procedure defino todos os dados do fonte na propriedade Canvas.Font, inclusive a cor desejada para o texto.
Quando tenho arquivos bmp e jpg mesclados a cor do texto sai exatamente igual a que defini em Canvas.Font.Color, mas quando tenho arquivos png a cor muda, é como se a cor do texto fosse misturada com a cor de fundo da imagem. (Não é bem isso porque testei algumas misturas e não deu o resultado esperado, mas algo está sim interferindo na cor definida para o texto).
Alguém tem idéia do que possa estar acontecendo?
Obrigado desde já.
Jorge.
Desenvolvi uma pequena função que mescla (combina) imagens do tipo bmp, jpg e png. Para imagens a função está funcionando perfeitamente, indo adiante resolvi inserir texto também nas imagens mescladas. Usei para isso a procedure Canvas.TextOut do bitmap mesclado. Antes de chamar essa procedure defino todos os dados do fonte na propriedade Canvas.Font, inclusive a cor desejada para o texto.
Quando tenho arquivos bmp e jpg mesclados a cor do texto sai exatamente igual a que defini em Canvas.Font.Color, mas quando tenho arquivos png a cor muda, é como se a cor do texto fosse misturada com a cor de fundo da imagem. (Não é bem isso porque testei algumas misturas e não deu o resultado esperado, mas algo está sim interferindo na cor definida para o texto).
Alguém tem idéia do que possa estar acontecendo?
Obrigado desde já.
Jorge.
Jorge Pinto
Curtir tópico
+ 0
Responder
Posts
04/12/2013
Jorge Pinto
Olá,
Encontrei a solução deste problema! O que estava acontecendo é que o texto que era escrito sobre o bitmap estava sofrendo o efeito do canal alfa do bitmap, ou seja, estava sofrendo o efeito da transparência aplicada ao bitmap. Dessa forma a cor original que era definida para o texto era alterada para ficar "transparente" o que na prática nada mais é do que uma mudança na própria cor, assim um vermelho se transformava num rosa e assim por diante.
Nada tinha a ver com a imagem que já estava no bitmap como eu suspeitei inicialmente mas sim com o canal alfa do bitmap. Para resolver isso fiz o seguinte antes de usar TextOut para escrever o texto no bitmap:
Bitmap.AlphaFormat:= afIgnored;
Assumindo que Bitmap é uma variável do tipo TBitmap.
Isso fez com que a cor do texto saísse exatamente como foi definida.
Tópico RESOLVIDO.
Encontrei a solução deste problema! O que estava acontecendo é que o texto que era escrito sobre o bitmap estava sofrendo o efeito do canal alfa do bitmap, ou seja, estava sofrendo o efeito da transparência aplicada ao bitmap. Dessa forma a cor original que era definida para o texto era alterada para ficar "transparente" o que na prática nada mais é do que uma mudança na própria cor, assim um vermelho se transformava num rosa e assim por diante.
Nada tinha a ver com a imagem que já estava no bitmap como eu suspeitei inicialmente mas sim com o canal alfa do bitmap. Para resolver isso fiz o seguinte antes de usar TextOut para escrever o texto no bitmap:
Bitmap.AlphaFormat:= afIgnored;
Assumindo que Bitmap é uma variável do tipo TBitmap.
Isso fez com que a cor do texto saísse exatamente como foi definida.
Tópico RESOLVIDO.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)