Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Плавное именение рисунка с одного на другой 
:(
    Опции темы
vikaz
Дата 5.9.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Все привет!
Ребята подскажите!
Как можно сделать, чтобы рисунок из одного медленно перетикал в другой? и на какой компоненте это делать image и PaintBox?
Заранее спасибо!


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
cyberstream
Дата 5.9.2007, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



http://delphi4all.narod.ru/how/transf.htm
Не на С++, но идея ясна ... 
--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
vikaz
Дата 5.9.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



спс, сегодня попробую реализовать!


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 5.9.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



smile


Это сообщение отредактировал(а) vikaz - 5.9.2007, 13:23


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 5.9.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Возникла проблема с отладкой кода и проблема с PByteArray
в дельфи такой код
p1, p2, p : PByteMap;

я написал так!
PByteArray  p, p1, p2;

потом есть такой код:

for i := 1 to count - 1 do begin
    for y := 0 to bm.Height - 1 do begin
      p := bm.ScanLine[y];
      p1 := bm1.ScanLine[y];
      p2 := bm2.ScanLine[y];
      for x := 0 to bm.Width * 3 - 1 do
        p^[x] := round((p1^[x] * (count - i) + p2^[x] * i) / count);
    end;
    Form1.Canvas.Draw(0, 0, bm);
    Form1.Caption := IntToStr(round(i / count * 100)) + '%';
    Application.ProcessMessages;
    if Application.Terminated then break;
  end;

проблема возникла с сторокой 
p := bm.ScanLine[y];

написал так: p = bm->ScanLine[y];
но компилятор ругается:
[C++ Error] Unit1.cpp(63): E2034 Cannot convert 'void *' to 'unsigned char *'

что я не так определил или сделал?

и как перевести строку: 
p^[x] := round((p1^[x] * (count - i) + p2^[x] * i) / count);

Это сообщение отредактировал(а) vikaz - 5.9.2007, 14:04


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
jonie
Дата 5.9.2007, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



http://pascal.sources.ru/demo/morphing.htm
ну и по ссылкам на морфинг поищи 8)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
vikaz
Дата 6.9.2007, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Народ, помогите перевести код!!! :(


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 6.9.2007, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Ну все уже не надо! Вот код на с++ под Builder 6
Код

const count = 100;
int i;
int x,y;
Graphics::TBitmap * bm, *bm1,*bm2;
PByteArray  p, p1, p2;
int c;
int k;


 bm = new Graphics::TBitmap();
 bm1 = new Graphics::TBitmap();
 bm2 = new Graphics::TBitmap();
 bm1->LoadFromFile("c:\\1_1.bmp");
 bm2->LoadFromFile("c:\\2_1.bmp");
 if (bm1->Height < bm2->Height)
  {
   bm->Height = bm1->Height;
   bm2->Height = bm1->Height;
  }
  else
   {
    bm->Height = bm2->Height;
    bm1->Height = bm2->Height;
   }

  if (bm1->Width < bm2->Width)
  {
   bm->Width = bm1->Width;
   bm2->Width = bm1->Width;
  }
  else
  {
   bm->Width = bm2->Width;
   bm1->Width = bm2->Width;
  }
  bm->PixelFormat = pf24bit;
  bm1->PixelFormat = pf24bit;
  bm2->PixelFormat = pf24bit;

  Form1->Canvas->Draw(0,0,bm1);
  for (i=1; i<count;i++)
  {
   for (y=0; y<bm->Height; y++)
   {
    p = (PBYTE) bm->ScanLine[y];
    p1 = (PBYTE) bm1->ScanLine[y];
    p2 = (PBYTE) bm2->ScanLine[y];

    for(x=0; x<bm->Width*3; x++)
    {
     p[x] = (int)((p1[x]*(count-i) + p2[x] * i)/count);
    }
   }
   Form1->Canvas->Draw(0,0,bm);
   }
   Form1->Canvas->Draw(0,0,bm2);
   delete bm, bm1, bm2;



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.