Sem descrição

Exibições: 267

Respostas a este tópico

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;

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço