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

алгоритм RLE - C++

Восстановить пароль Регистрация
 
Регина1994
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 34
22.09.2013, 19:28     алгоритм RLE #1
Нужна помощь. Чтобы сделать алгоритм сжатия RLE на с++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 19:28     алгоритм RLE
Посмотрите здесь:

RLE компресія на с++ C++
Метод RLE C++
Реализация алгоритма RLE C++
C++ ошибки для RLE
C++ Кодирование длин серий RLE
Алгоритм сжатия RLE. От этого зависит зачет по предмету) C++
C++ Компрессия и декомпрессия RLE
C++ Компрессия RLE

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
22.09.2013, 19:47     алгоритм RLE #2
Не забудьте перевести вход и выход в байтовую запись, и считывание.

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
#ifndef RLE_H
#define RLE_H
 
#include <stdio.h>
 
void RLE_encode(FILE *input,FILE *output)
{
    int last = 0;
    int c;
 
    while ( ( c = getc( input ) ) >= 0 )  
    {   
        putc( (char) c, output );
 
        if ( c == last ) 
        {
            int count = 0;
            while ( count < 255 && ( ( c = getc( input ) ) >= 0 ) ) 
            {
                if ( c == last )
                {
                    count++;
                }
                else
                {
                    break;
                }
            }
            putc( (char) count, output );
            if ( count != 255 && c >= 0 )
            {
                putc( (char) c, output );
            }
        }
        last = c;
    }
}
 
void RLE_decode(FILE *input,FILE *output)
{  
    int last = 0;
    int c;
    int count;
 
    while ( ( c = getc( input ) ) >= 0 )  
    {
        putc( (unsigned char) c, output );
 
        if ( c == last ) 
        {
            count = getc( input );
            while ( count-- > 0 )
            {
                putc( (unsigned char) c, output );
            }
        }
        last = c;
    }
}
 
#endif
Yandex
Объявления
22.09.2013, 19:47     алгоритм RLE
Ответ Создать тему
Опции темы

Текущее время: 23:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru