walexw Опубликовано 11 февраля, 2016 Поделиться Опубликовано 11 февраля, 2016 В форуме есть косвенно похожая тема, но у меня немного другое. Впервые столкнулся с вопросом записи фото с камеры в базу. Мне нужно в приложении (для андроида) иметь возможность по кнопке (или еще как) вызвать камеру, сделать снимок, уменьшить его до нужного размера (например до 0.5 Мб) и вставить его в BLOB-поле БД (SQLite) Пишу на RAD XE 10 Если у кого есть решение (хотя-бы близкое), поделитесь plz. или дайте ссылку где посмотреть. Спасибо. Цитата Ссылка на комментарий
2 ophion Опубликовано 11 февраля, 2016 Поделиться Опубликовано 11 февраля, 2016 (изменено) Вот пример того, как писать и читать BLOB procedure SaveToFireDACBlob; var MemStream: TMemoryStream; begin FireDAC.Connected := True; MemStream := TMemoryStream.Create; try Image1.Bitmap.SaveToStream(MemStream); MemStream.Seek(0,0); FDQueryInsert.ParamByName('Media').LoadFromStream(MemStream,ftBlob); FDQueryInsert.ParamByName('MType').AsString := '0'; FDQueryInsert.ExecSQL(); except on e: Exception do begin ShowMessage(e.Message); end; end; MemStream.Free; FireDAC.Connected := False; end; procedure LoadFromFireDACBlob; var BlobStream: TStream; begin FireDAC.Connected := True; try FDQuerySelect.Open; FDQuerySelect.First; while(not FDQuerySelect.EOF)do begin // access a stream from a blob like this BlobStream := FDQuerySelect.CreateBlobStream(FDQuerySelect.FieldByName('Media'),TBlobStreamMode.bmRead); // access a string from a field like this if (FDQuerySelect.FieldByName('MType').AsString='0') then begin // load your blob stream data into a control ImageViewer.Bitmap.LoadFromStream(BlobStream); end; BlobStream.Free; FDQuerySelect.Next; end; except on e: Exception do begin //ShowMessage(e.Message); end; end; FireDAC.Connected := False; end; {источник http://www.fmxexpress.com/read-and-write-a-blob-field-using-firedac-with-firemonkey-on-android-and-ios/} Касательно работы с изменением качества/размера, считаю что необходимо использовать TBitmapSurface (unit FMX.Surfaces) Изменено 11 февраля, 2016 пользователем ophion Aleks133, eser, Mars M и 7 других 10 Цитата Ссылка на комментарий
0 walexw Опубликовано 11 февраля, 2016 Автор Поделиться Опубликовано 11 февраля, 2016 ophion, спасибо! Буду разбираться. Цитата Ссылка на комментарий
0 kami Опубликовано 16 октября, 2018 Поделиться Опубликовано 16 октября, 2018 В 11.02.2016 в 18:03, ophion сказал: Вот пример того, как писать и читать BLOB Друже! Ты прекратил мои мучения. Ибо всякие извращения с обращением Query.Fields('lalala').AsBytes и тому подобное приводили к AV на закрытии Query. При этом тип поля - TVarBytesField (почему-то именно так распознается VARBINARY в SQLite...). Цитата Ссылка на комментарий
Вопрос
walexw
В форуме есть косвенно похожая тема, но у меня немного другое.
Впервые столкнулся с вопросом записи фото с камеры в базу.
Мне нужно в приложении (для андроида) иметь возможность по кнопке (или еще как)
вызвать камеру, сделать снимок, уменьшить его до нужного размера (например до 0.5 Мб)
и вставить его в BLOB-поле БД (SQLite)
Пишу на RAD XE 10
Если у кого есть решение (хотя-бы близкое), поделитесь plz. или дайте ссылку где посмотреть.
Спасибо.
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.