Fórum Manipular imagem sem carregá-la para um TImage #317505
27/03/2006
Olá, eu criei um programa que corrige uns defeitos de imagens. Ele pega imagens em bmp como objeto do tipo TImage e assim eu conseguia manipulá-la como bem entendia. O problema é que o meu programa deve manipular imagens em jpg, e a imagem não deveria ser carregada para um Form. Então, gostaria de saber como eu acesso uma imagem para manipulá-la sem usar o TImage, apenas carregando-a diretamente de onde foi salva.
Obrigado pela possível ajuda!
Posts
Vc pode utilizar um TMemoryStream com LoadFromFile
Certo, obrigado, vou tentar!
Como faço neste caso para acessar cada pixel, assim como eu fazia com o TImage? Grato!
Como faço neste caso para acessar cada pixel, assim como eu fazia com o TImage? Grato!
Como vc acessava cada pixel com o TImage ?
Vc poderia usar um componente [b:3fb07ff7dd]TImage [/b:3fb07ff7dd]em tempo de execução sem precisar colocá-lo em um formulário. Desta forma poderia trabalhar da mesma forma com ele. Ou usar a classe [b:3fb07ff7dd]TPicture[/b:3fb07ff7dd], se preferir.
[]´s
acho que vc não vai conseguir maniplular imagems JPG mas sim BMP,porque toda imagem JPG é descomprimida antes de ser exibida.
Usando o TImage eu acessava usando o comando image1.Picture.Bitmap.Scanline[y], por exemplo. Aí eu gostaria de não precisar carregar um bitmap pro Form, porque fica muito pesado.
Mas vou fazer o que vocês me aconselharam mesmo, usarei o bmp só que em tempo de execução. Muito obrigado!
Abraços
Eu tentei usar o TImage em tempo de execução, mas ao instanciar mais de 3 objetos dava erro de execução...Aí eu instanciei só um e não deu problema algum, mas deu erro de execução na linha que fazia Imagem1.Picture.LoadFromFile(caminho);
O que pode ser? Provavelmente estou usando o TImage sem colocá-lo no form de uma forma errada, não? E eu posso usar o TImage carregando um jpg? Se não, como devo fazer a conversão? Valeu de novo!
Já encontrei o meu erro, bem básico por sinal :)
De dúvidas, só me restam as duas últimas. Obrigado!
Já encontrei o meu erro, bem básico por sinal :)
De dúvidas, só me restam as duas últimas. Obrigado!