Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
MSC398
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
#1

Как сфотографировать в буфер ? - Программирование Android

06.10.2013, 20:51. Просмотров 546. Ответов 9
Метки нет (Все метки)

Всем привет.
Посоветуйте способ, как сфотографировать:

Javascript
1
      public void onPictureTaken(byte[] paramArrayOfByte, Camera camera)
камерой несколько фоток в буффер, а потом их читать, выборочно удалять и записывать новые.

Может попробовать RandomAccessFile() или PipedInputStream() и PipedOutputStream(),
есть еще способы ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2013, 20:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сфотографировать в буфер ? (Программирование Android):

буфер обмена - Программирование Android
как реализовать так чтобы содержимое listview скопировать в буфер при длительном нажатии на элемент списка

Очистить буфер Activity - Программирование Android
Как очистить буфер Activity?

Можно ли скопировать текст в одном активити, и вставить через буфер обмена в другое? - Программирование Android
как используя буфер обмена (класс clipboard )скопировать текст в одном активити и вставить из буфера обмена в другое?Можно ли так делать...

Как сфотографировать обьект? - jQuery
Можно ли создать картинку jpeg и запомнить ее из обьекта например <table>?

Как 'сфотографировать' webbrowser, расположенный за границами формы? - Visual Basic
Мир Вам! На форме есть WebBrowser, расположенный за границами формы (т.е. не видим пользователю). Вопрос: Можно ли как-либо его...

Как сфотографировать Землю из космоса, потратив $100 - Другие науки
Для того, чтобы получить уникальные фотоснимки Земли из космоса, отнюдь не обязательной оказывается длительная подготовка научной...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
06.10.2013, 21:49 #2
Если вы их сохраняете на карту, то можно покопать в сторону ClipboardManager.

http://developer.android.com/guide/t...opy-paste.html
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
06.10.2013, 22:07 #3
Цитата Сообщение от MSC398 Посмотреть сообщение
несколько фоток в буффер
никак, там может быть только одно фото.
Цитата Сообщение от MSC398 Посмотреть сообщение
а потом их читать, выборочно удалять и записывать новые.
Делаете фото, сохраняете на карту памяти(или что там доступно) в свою директорию и делаете с файлами что хотите.
MSC398
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
06.10.2013, 22:22  [ТС] #4
Нельзя мне сохранять на карту - требуется максимальное быстродействие программы.
Нужнен буффер наподобие как в "Fast Burst Camera".
verylazy
Заблокирован
06.10.2013, 23:50 #5
ну так сохраняй массив байт который прилетает в onPictureTaken в свой массив, но это не по феншую, мне кажется
MSC398
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
09.10.2013, 18:02  [ТС] #6
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
public class BufferArray {
    ////////////////////BUFFER
    private static final int bufferSize = 0xFFFFF;// ~1Mег.
 
    static int nka = 0 ;
 
    static byte[] buffer = new byte[bufferSize];
    
    public static long writeBuf(InputStream input) throws IOException{
        int n = 0;
        while (-1 != (n = input.read(buffer))) {
            nka = n;
        }       
        return nka;
    }
 
    public static long readBuf(OutputStream output) throws IOException{
        int n = nka;
        output.write(buffer, 0, n);
        nka = n;
        return nka;
    }
}
Сделал так. работает, осталось организовать запись нескольких файлов.
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
09.10.2013, 20:09 #7
MSC398, догадываетесь, что произойдет, если изображение будет > 1Мб?
MSC398
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
09.10.2013, 20:51  [ТС] #8
Цитата Сообщение от razer89 Посмотреть сообщение
MSC398, догадываетесь, что произойдет, если изображение будет > 1Мб?
Конечно догадываюсь, не влезет! расширил до 16 Мб.
При тесте у меня фотки были по 300к (метра хватало)
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
09.10.2013, 21:18 #9
MSC398, тоже не вариант. 16 Мб оперативки на каждую фотку - многовато. Куда рациональней будет сделать размер буффера динамическим - т.е. сначала получать размер фото, и относительно этого размера создавать буфер.
MSC398
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
09.10.2013, 23:50  [ТС] #10
Цитата Сообщение от razer89 Посмотреть сообщение
MSC398, тоже не вариант. 16 Мб оперативки на каждую фотку - многовато. Куда рациональней будет сделать размер буффера динамическим - т.е. сначала получать размер фото, и относительно этого размера создавать буфер.
В буффере их будет несколько, прочитанные будут удаляться и записываться новые.
Незнаю пока как это сделать, но попробую

Добавлено через 17 минут
Как сконвертировать OutputStream в InputStream?

Добавлено через 1 час 36 минут
Конвертер нашел, работает
Javascript
1
2
3
4
5
ByteArrayOutputStream out = new ByteArrayOutputStream();
writeDataOnTheOutputStream(out);
byte[] data = out.toByteArray();
ByteArrayInputStream istream = new ByteArrayInputStream(data);
processDataFromInputStream(istream);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 23:50
Привет! Вот еще темы с ответами:

Мне нужно сфотографировать на принтскрин - Видеопрограммы
Мне нужно сфотографировать на принтскрин работу моей программы(она в Delphi7 сделана),но на форме у меня находится встроенный...

Может ли современный телескоп сфотографировать объект яркостью -28 зв. - Астрономия
Попробуем определить это методом сравнения. 1. С расстояния 1 миллион км Земля видна примерно как Луна Допустим, что и яркость Земли...

Записать символ в буфер клавиатуры, проверить буфер на наличие в нём символов, и вывести данный символ - Assembler
Доброго дня всем. Прошу помочь немного с несложной задачей, на использование прерывания INT 16h. Суть следущая: надо записать символ в...

нужно буфер рассмотреть как массив. как это сделать? - C (СИ)
нужно буфер рассмотреть как массив. как это сделать? помогите пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.10.2013, 23:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru