Вячеслав

Пользователи
  • Публикации

    125
  • Зарегистрирован

  • Посещение

  • Days Won

    2

Вячеслав last won the day on 25 февраля 2015

Вячеслав had the most liked content!

О Вячеслав

  • Звание
    Продвинутый пользователь

Посетители профиля

486 просмотров профиля
  1. Я бился над этим в своё время, в итоге забил и сделал просто кликабельную панель сбоку от этого компонента.
  2. Ну в этом плане конечно это крайне удобный и не трудоемкий вариант.
  3. Ну это Вы махнули, никакой уникальности у ID вичестера нет. Меняется этот номер программно на раз, поэтому любому молодому "хакеру" только и нужно будет узнать правильный ID, что тоже очень просто.
  4. Я возможно сейчас фигню напишу, палками не бейте. Под андроид не разрабатываю, но вот на винде вопрос общения через порт вставал неоднократно. И там это решалось либо через виртуальный com порт (драйвер от Microsoft), либо напрямую через драйвер производителя USB->UART микросхемы. Второй способ оказался куда приятнее. К примеру, берём популярную ft232. На их сайте http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples.htm в разделе для Delphi есть удобный Unit-обертка всех библиотечных функций и примеры. Также есть очень толковый мануал. Этот метод даёт куда больше возможностей для разработчика, начиная от большей стабильности работы, заканчивая различными бонусами в виде работы с памятью микросхемы, реализацией I2C, SPI и тд. К чему это я все? Просто нашёл на их сайте страницу про Андроид: http://www.ftdichip.com/Android.htm Если FTDI подошли к делу на андройде так же, как и на винде, то это может оказаться полезным.
  5. Было: http://fire-monkey.ru/topic/1560-com-port-firemonkey/
  6. Нормального решения пока нет. Либо выносите элементы управления за пределы TMediaPlayerControl, либо создавайте над ним еще одну форму, на которой будут находится другие кликабельные компоненты.
  7. Память на утечки проверяете при закрытии программы? Помните, что в FMX анимации в цикле достаточно сильно нагружают процессор даже в том случае, если форма с анимацией в данный момент не показана (ой сколько я с этим эффектом намучился в свое время).
  8. Все, окончательно осознал механизм работы, теперь все стало на свои места. Все дело в том, что моя камера выдает данные в формате AARRGGBB, только вот значение старших двух бит равно $00, а не $FF. Поэтому картинка и воспринимается прозрачной для TImage. В итоге пробежался в цикле по памяти, поменял нули на $FF и все заработало.
  9. Большое спасибо, этот метод работает, многое стало ясно. Правда, для меня это все равно не решение, т.к. в случае создания дополнительного потока только для пересохранения изображения в другом формате я получаю абсолютно такую же реализацию, как и с применением WinAPI и Vcl.Graphics.TBitmap. А это будет влиять на производительность, что в моем случае критично. Поэтому у меня такой вопрос: нельзя ли заставить TImage сразу воспринимать изображение в формате BMP?
  10. А если дополнительную форму над Webbrowser-ом создать, тоже не перекроет? Я просто только под Win пишу, не знаю тонкостей.
  11. При этом после команды Image1.Bitmap.Assign(bmp); выводится следующее (вырезал ножницами Windows):
  12. Что-то не то у меня с выводом в Image, возможно какие-то проблемы с PixelFormat. Попытался отвязаться от камеры и заполнить данные изображения каким-либо незамысловатым образом: function TCamPSEye.GetFMXBitmap: FMX.Graphics.TBitmap; var bitdata: TBitmapData; i, j: Integer; begin Result := FMX.Graphics.TBitmap.Create; Result.SetSize(640, 480); if (Result.Map(TMapAccess.Write, bitdata)) then try for I := 0 to 640 - 1 do for j := 0 to 480 - 1 do begin bitdata.SetPixel(i, j, i * j); end; finally Result.Unmap(bitdata); end; end; Полученный битмап сохраняю на диск, получаю хорошую красивую картинку: test3FMX.bmp
  13. Не помогло. Странно, уже много вариантов перепробовал. В файл картинка сохраняется нормально. Пытаюсь сохранить в поток и загрузить потом из потока - не работает. Такое ощущение, что на этапе сохранения в файл изображение проходит через процедуру дополнительной проверки и каким-то образом преобразуется. Но что именно происходит, отследить не получается даже под дебагом.
  14. Почти заработало. Вот код: function TCamPSEye.GetFMXBitmap: FMX.Graphics.TBitmap; var bitdata: TBitmapData; begin if not CLEyeCameraGetFrame(fInstance, fData, 750) then begin raise Exception.Create('Can not get image data'); Exit; end; Result := FMX.Graphics.TBitmap.Create; Result.SetSize(Resolution.X, Resolution.Y); //Result. if (Result.Map(TMapAccess.Write, bitdata)) then try Move(fData^, bitdata.Data^, Resolution.X * Resolution.Y * 4) finally Result.Unmap(bitdata); end; end; На выходе получается битмап с данными камеры, который прекрасно сохраняется на диск. А вот в TImage почему-то я его вывести не могу, появляется белая картинка. Вывожу так: procedure TFormMulticam.Button1Click(Sender: TObject); var bmp: FMX.Graphics.TBitmap; begin bmp := GCameraArray[0].GetFMXBitmap; bmp.SaveToFile('test2FMX.bmp'); Image1.Bitmap.Assign(bmp); bmp.Free; end; Может, при создании битмапа нужно указывать какие-либо дополнительные атрибуты?