Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 8
1

Конвертер bmp из 8 бит в 24 с палитрой

04.02.2010, 13:21. Показов 2263. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
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
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls, Menus, ComCtrls;
type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button1: TButton;
    Button2: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  F, F2, Fp, Fc : File;
  SFile, PFile: String;
  b,b1,b2: byte;
  i, k, j: integer;
  colors: array[0..1023] of byte;
  struct: array[0..26] of string;
 
implementation
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.OpenDialog1.Execute;
OpenDialog1.Filter:=('Bitmap file|*.bmp');
ProgressBar1.Position:=0;
AssignFile(F,Form1.OpenDialog1.FileName);
Reset(F,1);
AssignFile(Fp,'color.pal');
Reset(Fp,1);
 i:=0;
repeat
 BlockRead(Fp,b,1);
  colors[i]:=(b);
  i:=i+1;
until Eof(Fp);
CloseFile(Fp);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.SaveDialog1.Execute;
ProgressBar1.Position:=0;
SFile:=Form1.SaveDialog1.FileName+'new.bmp';
AssignFile(F,Form1.OpenDialog1.FileName);
AssignFile(F2,SFile);
Reset(F,1);
Rewrite(F2,1);
i:=0;
repeat
   BlockRead(F,b,1);
     case i of
     0..9:BlockWrite(F2,b,1);
     10:
     begin
      b:=54; BlockWrite(F2,b,1);
     end;
     11..13:
     begin
      b:=0; BlockWrite(F2,b,1);
     end;
     14..27: BlockWrite(F2,b,1);
     28:
     begin
      b:=24; BlockWrite(F2,b,1);
      end;
     29:
     begin
      b:=0; BlockWrite(F2,b,1);
      end;
     30..53: BlockWrite(F2,b,1);
     54..1077: i:=i;
     else
      begin
       for k:=0 to 2 do begin
           b1:=(colors[b*4+k]);
           BlockWrite(F2,b1,1);
      end;
     end;
    end;
   i:=i+1;
until Eof(F);
end;
end.
В чем может быть проблема? В Смещении ? Когда конвертируем файл с нечетным количеством пикселов его перекашивает. С четным все нормально.

Добавлено через 20 часов 34 минуты
а если точнее его начинает перекашивать с размеров с нечетной высотой и шириной начиная с 805х605
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2010, 13:21
Ответы с готовыми решениями:

Конвертер BMP 32 bit BGRA в BMP 8 bit c Palette
Добрый день! есть следующий вариант преобразования procedure TForm1.Button1Click(Sender:...

Конвертер из Bmp в Tga
Доброго времени суток, уважаемые форумчане. Возникла проблема с конвертером изображений...

Конвертер из .cur в .bmp
Не могу найти, посоветуйте пожалуйста

Конвертер BMP to HEX
Доброго времени суток! Не поделится ли кто названием или ссылкой на готовый конвертер BMP - HEX,...

1
37 / 36 / 11
Регистрация: 30.04.2009
Сообщений: 90
17.02.2010, 11:33 2
Попробуйте так:
Delphi
1
2
3
Bitmap : TBitmap;
 
Bitmap.PixelFormat := pf24bit;
0
17.02.2010, 11:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2010, 11:33
Помогаю со студенческими работами здесь

Конвертер BMP в RGB
Добрый день,помогите пожалуйста, нужно создать конвертер BMP картинки в RGB для дальнейших...

Написать конвертер из jpg в bmp
Здравствуй, форум. Можно ли как-то написать конвентор из jpg в bmp? и как это сделать?

Bmp (8 бит) изображение структура
Нужна полная информация о 8-битных bmp изображениях(их структура).То есть строки и в каких битах...

Написать конвертер изображений BMP to JPG
Здравствуйте. Я делаю проект и передо мной стоит задача написать конвертацию bmp в jpg на сях. Кто...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru