Precisava recortar uma imagem do INPE para usar num programa que estou desenvolvendo ,então
resolvi criar um programa para me ajudar nesta tarefa de forma automática.Veja codigo abaixo:
{
Titulo:Codigo para particionar uma imagem bitmap em 36 segmentos
Autor:Almir Bispo
Slogan:Yehovah é o Nome do Santo
Data:05/01/2014
A imagem a ser segmentada tem 5400 largura por 3600 pixeis de altura.
Serão criadas 36 imagens de 900 X 600 pixeis ,que serão extraidas em (6 por 900 e 6 por 600).
A ordem dos segmentos é:
0-6-12-18-24-30
1-7-13-19-25-31
2-8-14-20-26-32
3-9-15-21-27-33
4-10-16-22-28-34
5-11-17-23-29-35
Este codigo manipula bitmaps,portanto serve apenas para usuários do Windows.
}
procedure TForm1.Button1Click(Sender: TObject);
var im_en,imu:tbitmap;
l,h,iw,ql,qh:integer;
begin
//cria uma pasta para novas imagens
createdir('img_novas');
//cria bitmaps na memoria
im_en:=tbitmap.Create;
imu:=tbitmap.Create;
//define tamanho do segmento do bitmap
imu.Width:=900;imu.Height:=600;
//imagem a ser segmentada é carregada
im_en.LoadFromFile(application.location+'19s45_zn.bmp');
for ql:= 0 to 5 do
for qh:= 0 to 5 do
begin
imu.Width:=900;imu.Height:=600;
for l:=0 to 900 do
for h := 0 to 600 do
begin
//cada pixel é extraido para imagem segmentada
imu.Canvas.Pixels[l,h]:=im_en.Canvas.Pixels[(ql*900)+l,(qh*600)+h];
end;
//salva imaggens para pasta
imu.SaveToFile('img_novas\'+inttostr(ql)+'_'+inttostr(qh)+'.bmp');
imu.Clear;
end;
imu.free;
im_en.free;
showmessage('Pronto !');
end;
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por