Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Linux Подскажите среду для C++ под Линукс https://www.cyberforum.ru/ cpp-linux/ thread1299341.html
Есть ли среда программирования для с++ под Линукс. Через терминал не удобно работать (при ошибках в коде сложно найти)?
Getopt. Обработка ошибок ввода параметров C++ Linux
Доброго Здоровья! Собственно проблема. Если параметр требует аргумента, а аргумент пропущен, то в качестве аргумента записывается следующий параметр. Можно такую ошибку отловить на этапе обработки параметров? Рассмотрим сферический пример в вакууме: #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main( int argc, char **argv ) {
C++ Linux Отсортировать списки целых чисел https://www.cyberforum.ru/ cpp-linux/ thread1299223.html
Добрый вечер форумчане! Прошу у вас помощи. 1)Надо написать программу что бы отсортировать списки целых чисел. 2)В целочисленном массиве найти 2 максимальных элемента. Вывести номера элементов. 3)Отсортировать столбцы двумерного массива M*N по сумме элементов в столбцах. 4)В текстовом файле все имена собственные вывести большими буквами. Сам никак не могу понять как это все делается.Заранее...
C++ Linux Сервер под linux https://www.cyberforum.ru/ cpp-linux/ thread1299067.html
Стоит такая задача: написать сервак, который должен у принятых пакетов 1. Снять все хедеры до IP-хедера 2. На IP-хэдер наложить маску (структуру заголовка IP-пакета) 3. Получить из этого заголовка IPDest, IPSource и вывести их на экран Пытаюсь принимать пакеты через int sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); ,но не представляю как выполнить эти три пункта( Подскажите пожалуйста...
C++ Linux Как в программе использовать буферизованный и небуферизованный ввод одновременно?
В программе я ввожу числа буффериз. А мне надо спрашивать в конце работы 1 символ.(типа system("pause")-windows)
C++ Linux Как установить Code::Blocks? https://www.cyberforum.ru/ cpp-linux/ thread1298853.html
Debian Squeze. Скачал с оф. сайта архив codeblocks-13.12-1_i386.debian.stable.tar.xz не понял как установить нашел в папки .deb файлы попытался установить пишет неразрешимая зависимость 13.12-1 Выпуск 7.7 (wheezy) 32-бит Ядро Linux 3.2.0-4-486 GNOME 3.4.2 Intel® Pentium(R) M processor 1600MHz Добавлено через 14 минут
C++ Linux Сигналы в GTK+ (разделить по файлам) Всем добра! Изучаю Vala, и сейчас пытаюсь получить и обработать сигнал. Для этого набросал простую прогу, исходный код в трёх файлах: GUI.vala (рисует графический интерфейс, сотоящий из кнопки и лейбла:)), Signals.vala (в нём хочу описать сигналы и обрабатывать их), и Sample.vala (в нём точка входа в программу) Этот код работает, и делает то, что было задумано. Собирается командой valac... https://www.cyberforum.ru/ cpp-linux/ thread1298448.html C++ Linux Read returning value of main() from terminal
How i can read main() returning value from terminal(tty) ? int main(){ return 0; } int main(){ return 1; } How use this ?
C++ Linux Реализовать двумя потоками запись в память и вывод строки с помощью семафора. два процесса с разделенной памятью один процесс записывает строку в память другой после записи каждой строки выводит её на печать синхронизацию процесса осуществить с помощью симофора Помогите пожалуйста с прогай https://www.cyberforum.ru/ cpp-linux/ thread1297518.html C++ Linux Как собрать библиотеку glfw3 (for opengl) из исходников в ubuntu 14.04 ? https://www.cyberforum.ru/ cpp-linux/ thread1294743.html
Есть библиотека http://sourceforge.net/projects/glfw/files/glfw/3.0/ Если я просто положу файлы в /usr/include в ubuntu 14.04 то этого будет достаточно, чтобы использовать эту библиотеку в программах через inlcude ? Добавлено через 52 минуты зашел в директорию библиотеки, скачанной. выполнил: mkdir build cd build
Извлечение данных из файла C++ Linux
Доброго времени суток! У меня вопрос, как инициализировать 3 связанных списка (лист1, лист2, лист3) данными из файла? Отрывок файла выглядит так: R D 4 Up B C 2 Up R H 3 Up R D 8 Up ****** R H 6 Up ****** R H 8 Down
C++ Linux Fstat64() - не компилируется код под Linux https://www.cyberforum.ru/ cpp-linux/ thread1293473.html
Под Linux не компилируется код: #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> unsigned long long int _openedFileSizeCount64(FILE *fileInOut) { #ifdef __linux struct stat64 sFileParams; if (fstat64(fileno(fileInOut), &sFileParams) != 0) {
2 / 2 / 1
Регистрация: 21.04.2013
Сообщений: 205
17.11.2014, 15:12  [ТС] 0

Редактирование/создание EXIF заголовка jpeg файла - C++ Linux - Ответ 6862587

17.11.2014, 15:12. Показов 3700. Ответов 3
Метки (Все метки)

Ответ

может вы сможете мне помочь?
я разбираю код jhead, и мне надо понять как записать свой тег(TAG_FOCALLENGHT) в exif...

При повторном разборе jhedом тег находится, данные не верны
вообще последовательность тегов и данных не очень ясна

вот функция которая записывает теги из jhead
C++
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
void create_EXIF(void)
{
    char Buffer[256];
 
    unsigned short NumEntries;
    int DataWriteIndex;
    int DateIndex;
    int DirIndex;
    int DirContinuation;
    
    MotorolaOrder = 0;
 
    memcpy(Buffer+2, "Exif\0\0II",8);
    Put16u(Buffer+10, 0x2a);
 
    DataWriteIndex = 16;
    Put32u(Buffer+12, DataWriteIndex-8); // first IFD offset.  Means start 16 bytes in.
 
    {
        DirIndex = DataWriteIndex;
        NumEntries = 2;
        DataWriteIndex += 2 + NumEntries*12 + 4;
 
        Put16u(Buffer+DirIndex, NumEntries); // Number of entries
        DirIndex += 2;
  
        // Enitries go here...
        {
 
            // Date/time entry
            Put16u(Buffer+DirIndex, TAG_DATETIME);         // Tag
            Put16u(Buffer+DirIndex + 2, FMT_STRING);       // Format
            Put32u(Buffer+DirIndex + 4, 20);               // Components
            Put32u(Buffer+DirIndex + 8, DataWriteIndex-8); // Pointer or value.
            DirIndex += 12;
 
            DateIndex = DataWriteIndex;
            if (ImageInfo.numDateTimeTags){
                // If we had a pre-existing exif header, use time from that.
                memcpy(Buffer+DataWriteIndex, ImageInfo.DateTime, 19);
                Buffer[DataWriteIndex+19] = '\0';
            }else{
                // Oterwise, use the file's timestamp.
                FileTimeAsString(Buffer+DataWriteIndex);
            }
            DataWriteIndex += 20;
        
            // Link to exif dir entry
            Put16u(Buffer+DirIndex, TAG_EXIF_OFFSET);      // Tag
            Put16u(Buffer+DirIndex + 2, FMT_ULONG);        // Format
            Put32u(Buffer+DirIndex + 4, 1);                // Components
            Put32u(Buffer+DirIndex + 8, DataWriteIndex-8); // Pointer or value.
            DirIndex += 12;
//-----------------ВОТ ТУТ Я ПЫТАЮСЬ ВПИХНУТЬ СВОЮ СЕКЦИЮ---------------------
//                Put16u(Buffer+DirIndex, TAG_FOCALLENGTH);         // Tag
//                Put16u(Buffer+DirIndex + 2, FMT_URATIONAL);       // Format
//                Put32u(Buffer+DirIndex + 4, 1);                   // Components
//                Put32u(Buffer+DirIndex + 8, DataWriteIndex-8); // Pointer or value.
//                DirIndex += 12;
 
//СКОРЕЕ ВСЕГО ЗАПИСЫВАЮ НЕ ТУДА, А ТОГДА КУДА ЗАПИСЫВАТЬ?
//                Buffer[DataWriteIndex] = ImageInfo.FocalLength;
//                DataWriteIndex += 8;
//---------------------------------------------------------------------------------------
        }
 
        // End of directory - contains optional link to continued directory.
        DirContinuation = DirIndex;
    }
    {
 
        DirIndex = DataWriteIndex;
        NumEntries = 1;
        DataWriteIndex += 2 + NumEntries*12 + 4;
 
        Put16u(Buffer+DirIndex, NumEntries); // Number of entries
        DirIndex += 2;
 
        // Original date/time entry
        Put16u(Buffer+DirIndex, TAG_DATETIME_ORIGINAL);         // Tag
        Put16u(Buffer+DirIndex + 2, FMT_STRING);       // Format
        Put32u(Buffer+DirIndex + 4, 20);               // Components
        Put32u(Buffer+DirIndex + 8, DataWriteIndex-8); // Pointer or value.
        DirIndex += 12;
 
        memcpy(Buffer+DataWriteIndex, Buffer+DateIndex, 20);
        DataWriteIndex += 20;
 
 
        
        // End of directory - contains optional link to continued directory.
        Put32u(Buffer+DirIndex, 0);
    }
 
    {
        //Continuation which links to this directory;
        Put32u(Buffer+DirContinuation, DataWriteIndex-8);
        DirIndex = DataWriteIndex;
        NumEntries = 2;
        DataWriteIndex += 2 + NumEntries*12 + 4;
 
        Put16u(Buffer+DirIndex, NumEntries); // Number of entries
        DirIndex += 2;
        {
            // Link to exif dir entry
            Put16u(Buffer+DirIndex, TAG_THUMBNAIL_OFFSET);         // Tag
            Put16u(Buffer+DirIndex + 2, FMT_ULONG);       // Format
            Put32u(Buffer+DirIndex + 4, 1);               // Components
            Put32u(Buffer+DirIndex + 8, DataWriteIndex-8); // Pointer or value.
            DirIndex += 12;
        }
 
        {
            // Link to exif dir entry
            Put16u(Buffer+DirIndex, TAG_THUMBNAIL_LENGTH);         // Tag
            Put16u(Buffer+DirIndex + 2, FMT_ULONG);       // Format
            Put32u(Buffer+DirIndex + 4, 1);               // Components
            Put32u(Buffer+DirIndex + 8, 0); // Pointer or value.
            DirIndex += 12;
        }
        // End of directory - contains optional link to continued directory.
        Put32u(Buffer+DirIndex, 0);
    }
 
  //  printf("DataWriteIndex(3) %d <-------------------------\n", DataWriteIndex);
 
 
    Buffer[0] = (unsigned char)(DataWriteIndex >> 8);
    Buffer[1] = (unsigned char)DataWriteIndex;
 
    // Remove old exif section, if there was one.
    RemoveSectionType(M_EXIF);
 
    {
        // Sections need malloced buffers, so do that now, especially because
        // we now know how big it needs to be allocated.
        unsigned char * NewBuf = malloc(DataWriteIndex);
        printf("DataWriteIndex %d <-------------------------\n", DataWriteIndex);
        if (NewBuf == NULL){
            ErrFatal("Could not allocate memory");
        }
        memcpy(NewBuf, Buffer, DataWriteIndex);
 
        CreateSection(M_EXIF, NewBuf, DataWriteIndex);
 
        // Re-parse new exif section, now that its in place
        // otherwise, we risk touching data that has already been freed.
        process_EXIF(NewBuf, DataWriteIndex);
    }
}


Вернуться к обсуждению:
Редактирование/создание EXIF заголовка jpeg файла C++ Linux
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2014, 15:12
Готовые ответы и решения:

Структура jpeg файла
не знаю в какой раздел это писать... посему прошу прощения за неточность.. растолкуйте пожалуйста...

Как считать дату из EXIF jpeg файла?
Как считать дату из EXIF jpeg файла?

Считывание Exif информации картинки jpeg
Добрый день! Подскажите пожалуйста как лучше считать данные, а именно информацию GPS с Exif. На...

Jpeg файл - достать дату съемки (exif)
Как в delphi написать функцию для считывания информации о дате фотографии? то есть на входе строка...

3
17.11.2014, 15:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2014, 15:12
Помогаю со студенческими работами здесь

Создание и редактирование cmd-файла с использованием bat-файла
Нужно создать cmd файл в %systemroot% и отредактировать его из bat'ника

Создание и редактирование файла
Привет! Помогите решить задачу, не знаю как сделать! Короче сама задача: Создать файл на диске...

Редактирование атрибутов JPEG файлов
Проблема состоит в следующем. Есть JPEG файл с внедренным в него описанием и всякими мета тегами....

Создание и редактирование .dat файла
Написать программу, которая формирует новый файл последовательного доступа, в котором исключены...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru