Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разрезание изображения на кусочки

7.8K
22 октября 2005 года
EcliptoR
19 / / 17.01.2005
Естественно что сабж - часть курсача.
Проблема состоит в том чтобы разрезать имаджу, например TBitmap на кусочки правильной формы: квадраты или восьмиугольники. Поделитесь плз идеями на сей счет, а то в голову только бред приходит.
6.5K
23 октября 2005 года
a.k.a Throne
39 / / 07.08.2005
Цитата:
Originally posted by EcliptoR
Посмотри в Windows SDK и поищи о работе с контекстами. Тут скорее всего можно использовать регионы

7.8K
23 октября 2005 года
EcliptoR
19 / / 17.01.2005
Цитата:
Originally posted by a.k.a Throne



tnx for help но проблема сама собой рассосалась, теперь восьмиугольники уже не нужны.

344
23 октября 2005 года
Delpher
493 / / 14.08.2005
Цитата:
Originally posted by EcliptoR
Естественно что сабж - часть курсача.
Проблема состоит в том чтобы разрезать имаджу, например TBitmap на кусочки правильной формы: квадраты или восьмиугольники. Поделитесь плз идеями на сей счет, а то в голову только бред приходит.



Может это поможет

Код:
procedure Blocks(Bitmap: TBitmap; Hor, Ver, MaxOffset:
  Integer; BackColor: TColor);

  function RandomInRadius(Num, Radius: Integer): Integer;
  begin
    if Random(2) = 0 then
      Result := Num + Random(Radius)
    else
      Result := Num - Random(Radius);
  end;

var
  x, y, xd, yd: Integer;
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Assign(Bitmap);
    Bitmap.Canvas.Brush.Color := BackColor;
    Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
    xd := (Bitmap.Width - 1) div Hor;
    yd := (Bitmap.Height - 1) div Ver;
    Randomize;
    for x := 0 to xd do
      for y := 0 to yd do
        BitBlt(Bitmap.Canvas.Handle,
          RandomInRadius(Hor * x, MaxOffset),
          RandomInRadius(Ver * y, MaxOffset),
          Hor, Ver, Bmp.Canvas.Handle, Hor * x, Ver * y, SRCCOPY);
  finally
    Bmp.Free;
  end;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог