Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2011, 13:19   #1
NickForm
 
Регистрация: 02.12.2011
Сообщений: 6
По умолчанию Как прочитать и загрузить в paintBox изображение?

Не влезает код.
http://www.delphisources.ru/pages/so.../neuro_40.html
Когда загружаю сторонний bmp он отображается в paintbox но программа этого не видет, только то что я сам нарисую. В чем может быть проблема?

Последний раз редактировалось NickForm; 02.12.2011 в 13:23.
NickForm вне форума Ответить с цитированием
Старый 02.12.2011, 13:44   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Смотрите по коду, что именно нужно программе, ибо PaintBox есть холст, но не контейнер.
То есть не хранит изображение, а лишь рисует(событие OnPaint)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.12.2011, 17:00   #3
NickForm
 
Регистрация: 02.12.2011
Сообщений: 6
По умолчанию

Ну вот я нашел контейнер. Получается что сохранить я могу то что я нарисовал а загрузить для анализа нет.
Код:
Result := ((PByte(P1)^*idX + PByte(P1+1)^*dX)*idY + dY*(PByte(P2)^*idX + PByte(P2+1)^*dX))*OneDiv256;
вот на этом у меня возникает ошибка.
Как такое может быть если VScreen описан лишь однажды в коде? По сути он должен же распознавать то что сохраняет и грузить все правильно, разве нет?

Вот функция
Код:
function T8Bit.GetPix(AX, AY: Single): Single;
const OneDiv256=0.00390625;
var dX, dY, idX, idY: Single;
    X,Y, P1, P2:Integer;
begin
  X:=Trunc(AX+16384)-16384;
  Y:=Trunc(AY+16384)-16384;
  dX:=AX-X;
  idX:=1.0-dX;
  dY:=AY-Y;
  idY:=1.0-dY;

  if (X<0) or (X > BitWidth-2) or
     (Y<0) or (Y > BitHeight-2)
   then
     begin
       Result:=1.0;
       EXIT;
     end;

  P1:=Integer(Scan[Y])+X;
  P2:=Integer(Scan[Y+1])+X;
  Result := ((PByte(P1)^*idX + PByte(P1+1)^*dX)*idY + dY*(PByte(P2)^*idX + PByte(P2+1)^*dX))*OneDiv256;
end;

Последний раз редактировалось NickForm; 02.12.2011 в 18:12.
NickForm вне форума Ответить с цитированием
Старый 02.12.2011, 21:36   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

хм а може стоит подойти к вопросу с др. стороны?

Я кинул панельку, внутрь впихнул паинтбокс.. и код батона:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.LoadFromFile(ExtractFilePath(ParamStr(0)) + '1.bmp');
    Panel1.Width := bmp.Width;
    panel1.Height := bmp.Height;
    PaintBox1.Canvas.Draw(0,0, BMP);
    PaintBox1.Update;
  finally
    FreeAndNil(bmp);
  end;
end;
Все успешно грузитсо.

Правда я не знаю почему с первого раза не срабатывает отрисовка.
Нужно 2-ой раз нажать на кнопку чтобы сработала PaintBox1.Update;.
Ну или sleep пихните туда.
Человек_Борща вне форума Ответить с цитированием
Старый 05.12.2011, 12:31   #5
NickForm
 
Регистрация: 02.12.2011
Сообщений: 6
По умолчанию

У меня получается загрузить и с этим кодом и со своим, но программа как бы не видет. Такое ощущение что еще куда то рисование сохраняется, вернее хранится. Не опознает за картинку, пишет что ничего не нарисовал, пусто.
NickForm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузить изображение zont_11 Microsoft Office Excel 3 15.02.2011 12:24
Как перенести картинку в paintbox? xap4o Общие вопросы Delphi 2 16.05.2010 23:18
Загрузить изображение и текст larin1974 Помощь студентам 2 21.12.2009 17:17
как загрузить в paintbox картинку? blackstersl Общие вопросы Delphi 7 05.06.2009 18:20
Как вывести изображение из paintbox на принтер, если оно занимает 2 экрана? aleksei199 Общие вопросы Delphi 8 25.06.2008 14:00