obazko- podział na kawałki i puzzle

0

witam pytanko zawiera się w zasadzie w temacie
czy ktoś próbował napisać program co zamieni wybrany obrazek w puzzle?

no i jeszcze coś, mam obrazek 240x120 pikselków i chcialbym go podzielić na małe obrazki zapisane w osobnych plikach, obrazki o rozmiarach 40x40

obrazek 240x120 = 18 obrazków 40x40 (może teraz jaśniej to wygląda)

pozdro
ave!

0

witam pytanko zawiera się w zasadzie w temacie
czy ktoś próbował napisać program co zamieni wybrany obrazek w puzzle?

Ktos pewnie tak..

no i jeszcze coś, mam obrazek 240x120 pikselków i chcialbym go podzielić na małe obrazki zapisane w osobnych plikach, obrazki o rozmiarach 40x40
obrazek 240x120 = 18 obrazków 40x40 (może teraz jaśniej to wygląda)

i co z tego ze masz? Chcesz podzielic? no problemo - masz nasze przyzwolenie..

A na powaznie - precyzyjnie formuuj pytania, jezeli oczekujesz precyzyjnych odpowiedzi

0

siedziałem, siedziałem i takie cuś zrobiłem:

var
  dest, src:TRect;
  Bitmap: TBitmap;
  i,n: integer;
  xparts, yparts,no: byte;
  szer, wys: integer;
  puzzle: array of TImage;
begin
szer := 40;
wys := 40;
bitmap := TBitmap.Create;
bitmap.LoadFromFile('c:\\obraz.bmp'); //ścieżke sobie wybierz
xparts := ceil(bitmap.Width / szer);
yparts := ceil(bitmap.Height / wys);

SetLength(puzzle, (xparts * yparts)+1);

dest := Rect(0, 0, szer, wys);
no := 0;
for n := 0 to yparts-1 do
begin
  for i := 0 to xparts-1 do
  begin
    src := Rect(i*szer, n*wys, (i*szer)+szer, (n*wys)+wys);
    Inc(no);
    puzzle[no] := TImage.Create(form1);
    puzzle[no].Canvas.CopyRect(dest, bitmap.Canvas, src);
    puzzle[no].Picture.Bitmap.Height := wys;
    puzzle[no].Picture.Bitmap.Width := szer;

    // wyswietl sobie zeby sprawdzic :)
    form1.InsertControl(puzzle[no]);
    puzzle[no].Canvas.TextOut(1,1,inttostr(no));
    puzzle[no].left := i*(szer+2);
    puzzle[no].top := n*(wys+2);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1