Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2018.07.22;
Скачать: [xml.tar.bz2];

Вниз

Как вывести фото на 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.62 MB
Время: 0.018 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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский