Как получить свойства каждого пикселя файла jpeg на SD карте?

Mural
Offline
Зарегистрирован: 22.06.2018

Это не конец истории. Тогда приезжий подходит к группе таксистов со словами " Довезите туда-то за деньги" Ему тут же говорят - знаем мы вас, приезжих, вам за копейки надо чер-те куда. Он им- а вы знаете, куда я хочу доехать. Какая разница, в ответ. Ты же по определению нищий, поэтому хиляй отсель. Так, повторяет приезжий вы занете, где это, я готов обсудить цену?  Не знаю точно где это.а иди ты нахер, мой сменьщик рассказывал, что в том районе дороги плохие. Вон, видишь, троллейбус стоит, он вроде, на север...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Mural,

вот всё бы хорошо. Только вот ни у кого из присутствующих на майке НЕ

Mural пишет:

написано "Помогаю"

а потому,  кто хочет и кому хочет - помогает, а кто не хочет и кому не хочет ...

В целом Вы правы:

Mural пишет:

помогаем только умным

с ними интересно общаться и помогать им приятно

Mural пишет:

а глупым - нет

т.к. с ними неинтересно.

Mural пишет:

а ты, чувак, тест не пршел. 

Так що, звиняйте хлопці, сала немає!

Mural
Offline
Зарегистрирован: 22.06.2018

Mural пишет:

Я уже приводил пример- к вам подходит прохожий с просьбой подсказать дорогу, поскольку у вас на майке написано "Помогаю". А вы в ответ -чувак, ты не в курсе, что существуют карты? Он вам - я в вашем городе впервые, а карты у меня устаревшие - А вы, ну ты дебил! Дожил до таких лет и не разу здесь не бывал! Езжай обратно в свой Урюпинск! Я ж тебе махнул рукой На север, а ты, блять, подробности тебуешь! тебя ЧТО,БЛЯТЬ ЗА РУЧКУ ДОВЕСТИ! За ручку не надо, хотя бы ориентиры. А ты, сук, ЗАЧЕМ в наш город приехал! Отчитайся, урод! ЗА КАКОЙ ТАКОЙ НАДОБНОСТЬЮ! Нам, помогающим, оченна интерено с кого перепугу ты сюда приперся, пока не скажешь, хиляй отсель, а то,ищь, выгоду, сукаа ищет, золотой унитаз в наших весях, да и помогаем мы только умным, а глупым - нет, не опускаемся.. а ты, чувак, тест не пршел. Это наше консолидированное мнение, чтоты дебил, раз ни разу здесь не был, не ориентируешься, то и помощи не достоин.

Гопник вы ардуинский, другими словами.

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Mural пишет:

Это не конец истории. Тогда приезжий подходит к группе таксистов со словами " Довезите туда-то за деньги" Ему тут же говорят - знаем мы вас, приезжих, вам за копейки надо чер-те куда. Он им- а вы знаете, куда я хочу доехать. Какая разница, в ответ. Ты же по определению нищий, поэтому хиляй отсель. Так, повторяет приезжий вы занете, где это, я готов обсудить цену?  Не знаю точно где это.а иди ты нахер, мой сменьщик рассказывал, что в том районе дороги плохие. Вон, видишь, троллейбус стоит, он вроде, на север...

Борман мирно спал. Вдпруг в дверь его квартиры кто-то настойчиво постучал. 
Открыв дверь, Борман увидел человека в шинели, валенках, буденовке и с ППШ за спиной. Человек сказал: 
— Слоны идут на север. 
— Слоны идут на х*й! А Штирлиц живет этажом выше.

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Mural ,

ты уже сам себя цитировать по полстраницы начал? Ты бы не напрягался так, а то неровен час...

Жаль, Клапауция забанили, он бы тебе помог. Вот душа человек - всем помогал, не знаю уж что у него там на майке. По крайней мере направление, куда идти он бы тебе указал сразу - с полсотни постов назад.

Logik
Offline
Зарегистрирован: 05.08.2014

wdrakula пишет:

 

Готовый код для Ардуино для чтения BMP? - очень врядли кто-то занимался подобной херней, 

Чего же это! И не такой херней заниматся приходилось ))) Делал фоторамку, фотки с SD листало.

В BMP ниче сложного нет.

Алгоритм такой, сразу готовим фотку в годный размер, ориентацию и формат. Формат экрана самый годный ;)  Потом эти бмпщники на SD закидуем и учимся с ФС работать. Ну я думаю чувак желающий под графику код писать это сам слету, не буду подробничать.

Разкуриваем хедеры BMP, их много


struct BITMAPFILEHEADER
{
 word bfType;
 long unsigned int bfSize;
 word bfReserved1;
 word bfReserved2;
 long unsigned int bfOffBits;
};

struct BITMAPCOREHEADER
{
  long unsigned int bcSize;
  word bcWidth;
  word bcHeight;
  word bcPlanes;
  word bcBitCount;
};

struct BITMAPINFOHEADER
{
  long unsigned int biSize;
  long int biWidth;
  
  long  int  biHeight;
  word biPlanes;
  word biBitCount;
  long unsigned int biCompression;
  long unsigned int biSizeImage;
  long int biXPelsPerMeter;
  long int biYPelsPerMeter;
  long unsigned int biClrUsed;
  long unsigned int biClrImportant;
};

struct BITMAPINFO
{
  BITMAPCOREHEADER Core;
  BITMAPINFOHEADER Info;
};

struct FILE_BMP
{
  BITMAPFILEHEADER Header;
  BITMAPINFO Info;
  word Data[]; 
};

Но все тривиальное.

Далее читаем через небольшой буфер и калбек

File root;

#define BUFER_OUT_IMG_SIZE 255  //word!!!

byte DataPump(uint16_t *data, void *userData)
{
   return ((File*)userData)->read(data, BUFER_OUT_IMG_SIZE*2)/sizeof(word);
  
};

Из функции вывода хотябы с общими поверхностными проверками.


boolean IsValideBMP(void* bmp, word len)
{
  return ((( BITMAPINFOHEADER*)bmp)->biWidth==240) &&
         ((( BITMAPINFOHEADER*)bmp)->biHeight==320) &&
         ((( BITMAPINFOHEADER*)bmp)->biBitCount==16);
}   



boolean OutBMP565(void)
{
  word buf[BUFER_OUT_IMG_SIZE];
  byte size_buf;
   
  size_buf = myFile.read(buf, sizeof(BITMAPFILEHEADER));
  if(((BITMAPFILEHEADER*)buf)->bfType!=0x4d42)
   return false;

  tft.writeRegister(TFTLCD_ENTRY_MOD, 0x1010);
  
  size_buf = myFile.read(buf, ((BITMAPFILEHEADER*)buf)->bfOffBits-size_buf);
 
  if(IsValideBMP(buf, size_buf))
  {
    tft.bulkWrite(buf, BUFER_OUT_IMG_SIZE, DataPump, &myFile);
    return true;
  }
  return false;
}

Понятное дело либка экрана под такое нужна заточеная. 

Вобщем если все верно то 320*240 с 16-битным цветом секунды за полторы отрисует.

Про JPG думал. Очень медлено будет. Можна попробовать сразу в фоне перекодировать JPG в бмпшник, но нет резона т.к. пережать в 320*240 нужно. А раз уже прийдется фотошопом перепахать, так сразу и в бмпшник перепаковать логично. А места один занимает 153666 байт, на SD дохренища влезет. Вобщем не стал я с JPG морочится.

Mural
Offline
Зарегистрирован: 22.06.2018

sadman41   Тут весь пафос в том, что эту фразу про ро я откопипестил из сообщения другого местного эксперта по работе с растровыми файлами. Т.е. вы уже глумитесь друг над другом, только об этом не знаете.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Кстати, о майках. На - дарю!

533ed8205cace8cf934ed2fdb430d098-184x245

Носи и помни по свои уставы и чужие монастыри.

Mural
Offline
Зарегистрирован: 22.06.2018

Спасибо, Logik но мне не надо вывод на экран, мне надо значение  rgb пикселя в зависимости от его координат.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Mural пишет:

мне не надо вывод на экран, мне надо значение  rgb пикселя в зависимости от его координат.

Тебе уже дали херову гору ссылок и текстов, но везде вывод на экран и ты каждый раз вопишь, что тебе не надо. Давай я открою тебе секрет.

Во всех программах вывода на экран, сначала получают пиксел. А потом его выводят.

Так если тебе не надо вывод, ты пиксел-то получи (примеров тебе гору дали), а сам его никуда не выводи, а пихай куда тебе надо.

Неужели до этого так трудно допереть?

Mural
Offline
Зарегистрирован: 22.06.2018

 

[/quote]

 

Неужели до этого так трудно допереть?

[/quote]

Я сейчас вообще-то не к вам обращался, г-н гопник.

Logik
Offline
Зарегистрирован: 05.08.2014

так они там в buf и будут, по 16 бит на пиксель. Даже проще без вывода на экран, нет привязки к его формату картинки. Тогда и привычный 24-битный цвет можна легко распарсить. Опять таки с хедерами попавшегося бмпшника только разобратся подробней чем у меня, чтоб смещение в файле определять верно. После  этого по координатам определить смещение и прочитать,  например для 24-битного цвета 3 байта, в них и будет rgb.

b707
Offline
Зарегистрирован: 26.05.2017

Mural пишет:

 

 

Неужели до этого так трудно допереть?

[/quote]

Я сейчас вообще-то не к вам обращался, г-н гопник.

[/quote]

неужели так трудно допереть, как правильно квотить чужой текст? :)))

Да уж, где вам БМП разбирать, вам бы велик освоить до пенсии успеть :)

Mural
Offline
Зарегистрирован: 22.06.2018

Но у вас, вроде, все хедеры, для определения смещения  или еще каких-то не хватает?

b707
Offline
Зарегистрирован: 26.05.2017

Logik пишет:

так они там в buf и будут, по 16 бит на пиксель. Даже проще без вывода на экран

Логик, ему бессмысленно обьяснять, агрессивный тупой гоблин - все равно не поймет. Перед таким готовое решение положи - он его не заметит

причем - когда до него дойдет, что его не впустую троллили - а дали кучу ПРАВИЛЬНЫХ ссылок и полезной инфы, а сам он безнадежно тупил целый день - ему не придет в голову придти сказать спасибо и извинится...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Mural пишет:

одна строка самого большого файла спокойно влезает.

Т.е. самое большое разрешение у нас - это где-то 640х480.

Ну, в принципе - да, для Ардуины это разрешение великовато. Но одна строка в память влезет (если только эта строка - без вспомогательных переменных, стека и т.п.)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Давай, я вместо бедного Клапы подскажу тебе, где Сургут. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Mural пишет:
вообще-то не к вам обращался, г-н гопник.

Это публичное пространство, г-н дебил, а не личная переписка.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Logik пишет:

сразу готовим фотку в годный размер, ориентацию и формат

Я до этого тела пытался ровно то же самое донести: сразу подготовить фотку в УП на компе - во много раз грамотнее и технологичнее, чем заниматься онанизмом вприсядку. Бесполезно, тело делает вид, что оно в несознанке, пытаясь высосать тут готовые решения. Ну дал ты ему код с выводом на экран - тело будет вопить, что ему не нужен вывод на экран, и далее по кругу.

Это такой способ высасывать готовые решения, ничего нового. Прохе послать найух, пускай учится - либо в армию, дебилы стране тоже нужны, может, в госдуму попадёт потом.