Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.07.22;
Скачать: CL | DM;

Вниз

Как вывести фото на Image? (Delphi XE, Android)   Найти похожие ветки 

 
Антонов Саша   (2016-07-14 09:47) [0]

Здравствуйте! Хочу научиться вывести фото на компонент Image. Нашел пример на сайте Эмбаркадеро http://docwiki.embarcadero.com/CodeExamples/Berlin/en/FMXTCanvasDrawFunctions_(Delphi), немножко переделал для себя:
var
 MyBitmap: TBitmap;
 MyRect: TRectF;
begin
 MyBitmap := TBitmap.CreateFromFile("c:\myphoto.jpg");
 MyRect := TRectF.Create(50, 30, 150, 200);
 Image1.Bitmap.Canvas.BeginScene;
 Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, MyRect, 20);
 Image1.Bitmap.Canvas.EndScene;
end;

Поставил на событие OnShow формы(чтобы загружалоcь cразу при запуске), но получаю в итоге лишь белый экран телефона. Что делаю не так?


 
Антонов Саша   (2016-07-14 09:53) [1]

еще добавил такие строки:

procedure TForm1.FormCreate(Sender: TObject);
begin
 Image1.Bitmap.SetSize(Round(Image1.Width), Round(Image1.Height));
 Image1.Bitmap.Clear(TAlphaColors.White);
end;
результат тот же.. (((


 
Игорь Шевченко ©   (2016-07-14 10:18) [2]


> но получаю в итоге лишь белый экран телефона


А в андроиде на телефоне точно есть


> "c:\myphoto.jpg"


?


 
yui   (2016-07-14 10:38) [3]

все давно знают, что в ведроиде нету диска "це"

есть только диск "ф" (флешка)
и иногда диск "ы" (ыкстернал флешка)


 
Антонов Саша   (2016-07-14 10:52) [4]

Переделал, теперь беру фото из потока, предварительно загрузив его в ресурсы, но результат тот же.. ((

var
ABitmap:TBitmap;
aWidth,aHeight:integer;
SrcRect, DstRect: TRectF;
rs_img: TResourceStream;
Image : TImage;
begin
with Form1.Image1.Bitmap.Canvas do
begin
if FindResource(0, "MyPhoto", PChar(RT_RCDATA)) <> 0 then rs_img:=TResourceStream.Create(0,"MyPhoto",PChar(RT_RCDATA));
Image := TImage.Create(nil);
Image.BitMap := TBitMap.Create(0, 0);
Image.BitMap.LoadFromStream(rs_img);
ABitmap:=Image.BitMap;
aWidth:=ABitmap.Width;
aHeight:=ABitmap.Height;
SrcRect:=RectF(0,0,aWidth,aHeight);
DstRect:=RectF(x,y,aWidth+x,aHeight+y);
if BeginScene then
begin
DrawBitmap(ABitmap,SrcRect,DstRect, 1, True);
EndScene;
Image.Free;
rs_img.Free;
end;    
end;
end;


 
yui   (2016-07-14 11:00) [5]

имадж битмап хочет битмап (бмп)
а ты ему суешь левый жпег

это не будет работать не только лишь в андроиде. мало где это будет работать


 
Антонов Саша   (2016-07-14 11:01) [6]

Вычитал в интернете что народ напрямую пишет в Image: Image1.Bitmap.LoadFromStream(risunok);
но этот вариант не подходит так-как нужно пару фоток прочитать из ресурсов
и разместить в разных местах одного Image, типа галерею фото сделать.. ))


 
yui   (2016-07-14 11:05) [7]

если народ пишет, то почему бы не попробовать имадж битмап загрузить из mp4  с финальным матчем евро-2016?

по идее имадж должен и видос показать.

лоад же фром стрим, все дела, народ пишет....


 
Антонов Саша   (2016-07-14 11:11) [8]

Заменил фото на bmp-формат, в результате приложение закрывается сразу
после запуска на телефоне. Попробовал рисовать на канве формы, при событии  OnPaint, все работает независимо от формата, даже png  фото читает. А вот с отрисовкой на канве Image непонятка... ((


 
Антонов Саша   (2016-07-14 11:19) [9]

Но с формой неудобно работать в каждом OnPaint прийдется все заново рисовать. Нужен компонент в котором нарисовал и забыл, потом еще дорисовал если надо. Наверно Image больше подойдет для этого или PaintBox?


 
Kilkennycat ©   (2016-07-14 14:46) [10]


> PaintBox


 
Антонов Саша   (2016-07-14 15:09) [11]

Можно пример работы с PaintBox и битмап? Особо интересует при каких событиях, что нужно делать(отрисовка, обновление)? Какие форматы можно отрисовывать? Как вывести png-формат с прозрачностью? Скачал книгу Осипова о программировании для Андроида, но там все оч.коротко и примеров мало.. ((


 
Kilkennycat ©   (2016-07-14 15:28) [12]


> Можно пример работы с PaintBox и битмап? Особо интересует
> при каких событиях, что нужно делать(отрисовка, обновление)?
>  Какие форматы можно отрисовывать?

то есть напечатать здесь справку из Делфи?


 
Антонов Саша   (2016-07-14 15:52) [13]

)) ясно, буду дальше гуглить... Может найду раб.пример...


 
Антонов Саша   (2016-07-14 16:40) [14]

Как ни парадоксально, но справка иногда бесполезная вещь. Я вот вроде как рабочий там взял пример с битмепом, но всеравно не пашет.. ((


 
sniknik ©   (2016-07-14 16:58) [15]

а в Delphi XE есть модуль Jpeg? как в D7:
uses
 Jpeg;

  Image1.Picture.LoadFromFile("c:\myphoto.jpg");

ну, или что там вместо "c:"
не работает?


 
Антонов Саша   (2016-07-14 17:08) [16]

>sniknik Про модуль Jpeg незнаю, беру фото из ресурсов через поток.
На канве формы рисует, а на Image/Paintbox нивкакую... ((
(Но работать с формой неудобно, постоянно приходится перерисовывать)


 
Kilkennycat ©   (2016-07-14 17:15) [17]


> (Но работать с формой неудобно, постоянно приходится перерисовывать)

а что, у формы нет события onPaint?


 
Антонов Саша   (2016-07-14 17:26) [18]

на OnPaint формы и перерисовывал все, добавишь еще что-то, старое изображение исчезнет, чтобы этого не случилось рисовал повторно старое и рядом новое,оч.неудобно.. В Image/PaintBox вроде должно запоминать старое без повторной отрисовки, но пока не получается ничего в  них вывести... ((
Еще блин эти ограничения с форматами.. На канве формы из ресурсов(потока) рисует jpg,bmp,png без проблем...


 
Антонов Саша   (2016-07-14 17:26) [19]

на OnPaint формы и перерисовывал все, добавишь еще что-то, старое изображение исчезнет, чтобы этого не случилось рисовал повторно старое и рядом новое,оч.неудобно.. В Image/PaintBox вроде должно запоминать старое без повторной отрисовки, но пока не получается ничего в  них вывести... ((
Еще блин эти ограничения с форматами.. На канве формы из ресурсов(потока) рисует jpg,bmp,png без проблем...


 
Антонов Саша   (2016-07-14 22:32) [20]

Решил задачку по своему, рисую на Bitmap, потом присваиваю его Image.. ))
оч.быстро работает! если бы рисовал на Image, наверное было бы медленее...



Страницы: 1 вся ветка

Текущий архив: 2018.07.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.004 c
2-1468478872
Антонов Саша
2016-07-14 09:47
2018.07.22
Как вывести фото на Image? (Delphi XE, Android)


2-1468086435
TEdit
2016-07-09 20:47
2018.07.22
TEdit &amp; TMemo