Форум программистов, компьютерный форум, киберфорум
Наши страницы

Конвертация байтов в Int16 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить подробную блок-схему http://www.cyberforum.ru/cpp-beginners/thread902581.html
Помогите составить блок-схему: // --------------------------------------------- #include <stdio.h> #include <conio.h> #include <iostream.h> // -------------------------------------------...
C++ Чем отличаются dynamic_cast и static_cast? если можно пример напишите http://www.cyberforum.ru/cpp-beginners/thread902579.html
C++ Форматированный вывод. Можно ли реализовать переменную точность
Программа калькулятор. После вычисления значения нужно сделать вывод числа, да так, чтобы только значащие цифры были. С помощью printft. То есть числа разные, я определяю количество значащих цифр...
Как считывать числа с textBox ? C++
Как считывать числа с textBox ?
C++ Мах Елемент http://www.cyberforum.ru/cpp-beginners/thread902573.html
C++ Как работать с генератором случайных чисел В интернете нашёл мешалку для vector'a #include <algorithm> #include <functional> #include <vector> #include <set> #include <iostream> #include <ctime> #include <cstdlib> подробнее

Показать сообщение отдельно
NativeLand
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 46

Конвертация байтов в Int16 - C++

15.06.2013, 16:39. Просмотров 879. Ответов 3
Метки (Все метки)

Подскажите мб команду и библиотеку ей соответствующую ...
Суть в чем: имеется массив байтов .. нужно получить массив чисел, каждое из которых представлено 2 байтами (последовательными).

Кусок кода:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        int minc = std::numeric_limits<char>::min();
    int mins = std::numeric_limits<short>::min();
    char *buffer=new char[image.GetBufferLength()]; 
    bool getedBuffer=image.GetBuffer( buffer); 
    std::cout<<"Buffer success: "<<getedBuffer<<std::endl;
    unsigned char * unsigbuf=new unsigned char [image.GetBufferLength()];
    
    for (unsigned int i=0; i<image.GetBufferLength();++i)
    {
        unsigbuf[i]=buffer[i]-minc;
    }
    
    unsigned char GetPix[2];
    unsigned short *pixels=new unsigned short [image.GetBufferLength()/2];
    unsigned int k;
    for (unsigned int i=0;i<image.GetBufferLength()/2;++i)
    {
        k=i*2;
        GetPix[0]=unsigbuf[k];
        GetPix[1]=unsigbuf[k+1];
        
        // конвертирование pixels[i]= (unsigned short)(BitConverter::ToINT16(GetPix,0)-mins);
 
    }
Кратко суть: беру буффер изображения, (знаю, что оно черно-белое и пиксель описан Int16), перевожу его в тип unsigned char .. далее пытаюсь получить из него последовательность значений unsigned short ... Вот запнулся на получении из 2 unsigned char 1 unsigned short...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.