Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2012, 15:08   #1
Игорь_С
Пользователь
 
Аватар для Игорь_С
 
Регистрация: 14.10.2012
Сообщений: 39
По умолчанию замена элементов массива

доброго времени суток проблемка такая пишу программу по шифровке слова в картинку .bmp написал считывание а как реализовать замену не могу понять. Нужно заменить последний бит каждой компоненты на бит символа. Вот что сделал:
Код:
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>


using namespace std;

int main()
{
    int w, h;
 char bm[2];
FILE *f=fopen("file.bmp","rb");
fread(bm,2,1,f);
if(bm[0]!='B' || bm[1]!='M') cout <<"No file";


fseek(f, 18, SEEK_SET);
fread(&w, 4, 1, f);
fseek(f, 22, SEEK_SET);
fread(&h, 4, 1, f);
int is;
fseek(f,10,SEEK_SET);
fread(&is,4,1,f);
short bits;
fseek(f,28,SEEK_SET);
fread(&bits,2,1,f);
typedef unsigned char vec3ub[3];
int bwm=w*3;
while(bwm%4) bwm++;
vec3ub *img=new vec3ub[w*h+1];
fseek(f,is,SEEK_SET);
for (int i=0; i<h;i++)
{


fread(&img[i*w],bwm,1,f);
cout <<(int) img[i*w][0] << " ";
cout<<(int) img[i*w][1] << " ";
cout <<(int) img[i*w][2] << " ";


}
cout << "    \n";

int size=0;
unsigned char *mas_text=new unsigned char[size];

FILE *fp=fopen("text.txt", "rb");
    while(!feof(fp))
{
     size++;
        fread(mas_text, 2, 1, fp);
}


for(int i=0; i<size; i++)
cout << (int) mas_text[i] << " ";





    return 0;
}
Игорь_С вне форума Ответить с цитированием
Старый 01.11.2012, 15:20   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Простой вариант: читать соответствующие части файла и поэтапно переписывать их в другой файл, на ходу модифицируя матрицу изображения.
Вариант чуть сложнее: использовать т.н. memory mapping.
Abstraction вне форума Ответить с цитированием
Старый 07.11.2012, 09:05   #3
Игорь_С
Пользователь
 
Аватар для Игорь_С
 
Регистрация: 14.10.2012
Сообщений: 39
По умолчанию

если не трудно можете показать наброски реализации для понимания а то как будто кол в голове встал=)
Игорь_С вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена минимальных элементов массива на число L sens69 Помощь студентам 0 03.06.2012 12:43
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
замена элементов динамического массива ziman Общие вопросы C/C++ 1 17.12.2009 13:50
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16