⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 arm挂接led屏时对图像真彩全彩的灰度扫描时会有彩色失真问题
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Panel1: TPanel;
    Image1: TImage;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    rval : array[0..255] of byte;
    gval : array[0..255] of byte;
    bval : array[0..255] of byte;

    function ChangeColor(sour : integer): integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  x , y : integer;
begin
  for y := 0  to image1.Height -1 do
  begin
    for x := 0 to image1.Width - 1 do
    begin
      form1.Canvas.Pixels[x,y] := ChangeColor(image1.Canvas.Pixels[x,y]);
    end;
  end;

end;

function TForm1.ChangeColor(sour: integer): integer;
var
  v : array[0..3] of byte;
  w : array[0..3] of byte;
  pv : pbyte;
  ret : integer;
  pret : pinteger;
begin
  pv := pbyte(@sour);
  v[0] := pv^;
  inc(pv);
  v[1] := pv^;
  inc(pv);
  v[2] := pv^;
  inc(pv);
  v[3] := pv^;

  w[0] := rval[v[0]] ;
  w[1] := gval[v[1]] ;
  w[2] := bval[v[2]] ;
  w[3] := 0 ;

  pret := pinteger(@w);
  ret := pret^;
  result := ret;
end;

procedure TForm1.FormShow(Sender: TObject);
var
  i : integer;
begin
//  for i := 0 to 255 do
//  begin
//    rval[i] := abs(127-i);
//    gval[i] := abs(127-i);
//    bval[i] := abs(127-i);
//  end;

  rval[0] := 0;
  rval[1] := 0;
  rval[2] := 0;
  rval[3] := 1;
  rval[4] := 1;
  rval[5] := 1;
  rval[6] := 2;
  rval[7] := 2;
  rval[8] := 2;
  rval[9] := 2;

  rval[10] := 2;
  rval[11] := 2;
  rval[12] := 3;
  rval[13] := 3;
  rval[14] := 3;
  rval[15] := 3;
  rval[16] := 3;
  rval[17] := 3;
  rval[18] := 3;
  rval[19] := 3;

  rval[20] := 3;
  rval[21] := 3;
  rval[22] := 3;
  rval[23] := 4;
  rval[24] := 4;
  rval[25] := 4;
  rval[26] := 4;
  rval[27] := 4;
  rval[28] := 4;
  rval[29] := 4;

  rval[30] := 5;
  rval[31] := 5;
  rval[32] := 5;
  rval[33] := 5;
  rval[34] := 5;
  rval[35] := 5;
  rval[36] := 5;
  rval[37] := 6;
  rval[38] := 6;
  rval[39] := 6;

  rval[40] := 7;
  rval[41] := 7;
  rval[42] := 8;
  rval[43] := 8;
  rval[44] := 9;
  rval[45] := 9;
  rval[46] := 9;
  rval[47] := 10;
  rval[48] := 10;
  rval[49] := 10;

  rval[50] := 10;
  rval[51] := 11;
  rval[52] := 11;
  rval[53] := 11;
  rval[54] := 12;
  rval[55] := 12;
  rval[56] := 12;
  rval[57] := 12;
  rval[58] := 12;
  rval[59] := 13;

  rval[60] := 13;
  rval[61] := 13;
  rval[62] := 13;
  rval[63] := 14;
  rval[64] := 14;
  rval[65] := 14;
  rval[66] := 14;
  rval[67] := 15;
  rval[68] := 15;
  rval[69] := 15;

  rval[70] := 16;
  rval[71] := 16;
  rval[72] := 16;
  rval[73] := 17;
  rval[74] := 17;
  rval[75] := 17;
  rval[76] := 17;
  rval[77] := 18;
  rval[78] := 18;
  rval[79] := 18;

  rval[80] := 19;
  rval[81] := 19;
  rval[82] := 19;
  rval[83] := 20;
  rval[84] := 21;
  rval[85] := 22;
  rval[86] := 23;
  rval[87] := 23;
  rval[88] := 23;
  rval[89] := 23;

  rval[90] := 23;
  rval[91] := 24;
  rval[92] := 25;
  rval[93] := 25;
  rval[94] := 26;
  rval[95] := 26;
  rval[96] := 27;
  rval[97] := 27;
  rval[98] := 28;
  rval[99] := 28;

  rval[100] := 29;
  rval[101] := 29;
  rval[102] := 29;
  rval[103] := 30;
  rval[104] := 30;
  rval[105] := 31;
  rval[106] := 31;
  rval[107] := 32;
  rval[108] := 32;
  rval[109] := 33;

  rval[110] := 35;
  rval[111] := 35;
  rval[112] := 36;
  rval[113] := 37;
  rval[114] := 37;
  rval[115] := 38;
  rval[116] := 38;
  rval[117] := 39;
  rval[118] := 40;
  rval[119] := 40;

  rval[120] := 41;
  rval[121] := 42;
  rval[122] := 43;
  rval[123] := 43;
  rval[124] := 44;
  rval[125] := 45;
  rval[126] := 46;
  rval[127] := 47;
  rval[128] := 49;
  rval[129] := 50;

  rval[130] := 50;
  rval[131] := 51;
  rval[132] := 51;
  rval[133] := 52;
  rval[134] := 52;
  rval[135] := 53;
  rval[136] := 54;
  rval[137] := 55;
  rval[138] := 56;
  rval[139] := 57;

  rval[140] := 58;
  rval[141] := 59;
  rval[142] := 60;
  rval[143] := 61;
  rval[144] := 62;
  rval[145] := 63;
  rval[146] := 64;
  rval[147] := 65;
  rval[148] := 66;
  rval[149] := 67;

  rval[150] := 68;
  rval[151] := 70;
  rval[152] := 71;
  rval[153] := 72;
  rval[154] := 72;
  rval[155] := 73;
  rval[156] := 74;
  rval[157] := 75;
  rval[158] := 76;
  rval[159] := 77;
  rval[160] := 78;

  rval[161] := 79;
  rval[162] := 80;
  rval[163] := 82;
  rval[164] := 84;
  rval[165] := 85;
  rval[166] := 87;
  rval[167] := 88;
  rval[168] := 89;
  rval[169] := 90;

  rval[170] := 91;
  rval[171] := 94;
  rval[172] := 96;
  rval[173] := 97;
  rval[174] := 97;
  rval[175] := 98;
  rval[176] := 98;
  rval[177] := 100;
  rval[178] := 101;
  rval[179] := 103;

  rval[180] := 105;
  rval[181] := 106;
  rval[182] := 107;
  rval[183] := 107;
  rval[184] := 108;
  rval[185] := 111;
  rval[186] := 113;
  rval[187] := 114;
  rval[188] := 115;
  rval[189] := 117;

  rval[190] := 119;
  rval[191] := 120;
  rval[192] := 121;
  rval[193] := 123;
  rval[194] := 125;
  rval[195] := 126;
  rval[196] := 129;
  rval[197] := 131;
  rval[198] := 134;
  rval[199] := 136;

  rval[200] := 137;
  rval[201] := 137;
  rval[202] := 138;
  rval[203] := 141;
  rval[204] := 144;
  rval[205] := 145;
  rval[206] := 146;
  rval[207] := 147;
  rval[208] := 149;
  rval[209] := 153;

  rval[210] := 154;
  rval[211] := 155;
  rval[212] := 157;
  rval[213] := 159;
  rval[214] := 160;
  rval[215] := 163;
  rval[216] := 166;
  rval[217] := 168;
  rval[218] := 169;
  rval[219] := 171;

  rval[220] := 172;
  rval[221] := 175;
  rval[222] := 177;
  rval[223] := 179;
  rval[224] := 181;
  rval[225] := 183;
  rval[226] := 185;
  rval[227] := 186;
  rval[228] := 188;
  rval[229] := 190;

  rval[230] := 193;
  rval[231] := 196;
  rval[232] := 198;
  rval[233] := 201;
  rval[234] := 203;
  rval[235] := 204;
  rval[236] := 208;
  rval[237] := 210;
  rval[238] := 212;
  rval[239] := 214;

  rval[240] := 219;
  rval[241] := 221;
  rval[242] := 223;
  rval[243] := 227;
  rval[244] := 228;
  rval[245] := 230;
  rval[246] := 224;
  rval[247] := 237;
  rval[248] := 239;
  rval[249] := 240;

  rval[250] := 242;
  rval[251] := 243;
  rval[252] := 245;
  rval[253] := 247;
  rval[254] := 249;
  rval[255] := 255;

  for i := 0 to 255 do
  begin
    gval[i] := rval[i];
    bval[i] := rval[i];
  end;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -