BUG de transparência no Image
Ao colocar uma imagem em um componente Image que tenha uma parte transparente e habilitando a propriedade transparent do componente, dependendo de onde estaja a região transparente, pode simplesmente não funcionar. Se tiver apenas uma região transparente na parte de cima da figura ou do lado direito, não funciona a transparência.
Faça a teste: vá no photoshop e crie um quadrado com o fundo transparente, preencha com alguma cor do meio do quadrado para cima, e salve como jpg. Coloque em um componente Image e habilite a propriedade transparent, funciona normal. Mas agora faça uma outra figura preenchendo do meio para baixo, a transparência não vai funcionar.
Alguém sabe como contornar este problema?
Faça a teste: vá no photoshop e crie um quadrado com o fundo transparente, preencha com alguma cor do meio do quadrado para cima, e salve como jpg. Coloque em um componente Image e habilite a propriedade transparent, funciona normal. Mas agora faça uma outra figura preenchendo do meio para baixo, a transparência não vai funcionar.
Alguém sabe como contornar este problema?
Raserafim
Curtidas 0
Respostas
Cebikyn
14/01/2004
A transparência do TImage, não é a mesma do PhotoShop, mesmo porque formatos como JPG e BMP não possuem transparência (abra seu arquivo no PhotoShop novamente e verifque). A trasnparência do TImage funciona pois o componente simplesmente remove a cor do pixel do canto superior esquerdo da imagem. Para contornar esta situação use um formato que suporte transparência, como GIF ou PNG (em um componente adequado).
GOSTEI 0
Raserafim
14/01/2004
Não concordo tanto com a sua defesa do componente image, pois acho que este componente consegue fazer bem a transparência quando nõ é em forma degradê. Mas acho que este problema que citei é realmente um bug. Basta fazer os testes que falei, para ver que não à razão nenhuma para dar certo quando a transparência está em baixo e não dar certo quando está em cima.
Queria uma solução, se não com o componente Image, msa pelo menos com um componente padrão do delphi 6.
Queria uma solução, se não com o componente Image, msa pelo menos com um componente padrão do delphi 6.
GOSTEI 0
Beppe
14/01/2004
Com certeza não é um bug, já que BMPs nada sabem sobre transparência.
O TImage simula isso, mas precisa atender à certas condições, como dito pelo cebikyn.
Uma maneira de burlar o sistema de tranparência do TImage seria mudar TransparentColor do bitmap para a cor que você deseja que seja transparente, em tempo de execução.
O TImage simula isso, mas precisa atender à certas condições, como dito pelo cebikyn.
Uma maneira de burlar o sistema de tranparência do TImage seria mudar TransparentColor do bitmap para a cor que você deseja que seja transparente, em tempo de execução.
GOSTEI 0