<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Delphi圖像處理中ScanLine的使用

      一般我們在Delphi中進行圖像處理時采用Pixels像素點賦值的方法,Delphi代碼如下:

      var
      x,y:Integer;
      cColor:TColor;
      begin
        for y:=0 to Image1.Height-1 do
          for x:=0 to Image1.Width-1 do
            cColor:=Image1.Canvas.Pixels[i,j];
      end;


      但是這種方法有個缺點,處理速度很慢,小圖像還可以,對于大點的圖像來說就太慢了。
      Delphi提供了一種掃描線ScanLine方法是對圖像的一行進行掃描,獲取本行中各像素的內存地址。眾所周知,內存操作肯定會比常規的像素點賦值速度快很多,所以將大大提高圖像的處理速度。

      Delphi代碼如下:

      var
      P:array[0..100] of PByteArray;//像素數組       
      y:Integer;
      begin
        for y:=0 to Bmp.Height-1 do
        begin
          P[y]:=Bmp.ScanLine[y];//將圖片所有像素值存入P
        end;
      end;


      這樣就將一個圖像的所有像素都存入了P這個數組
      在SysUtils單元中可以看出PByteArray實際上是一個Byte類型的數組
      所以我們聲明的P:array[0..100] of PByteArray;實際上可以看成是一個二維數組
      P數組就是一個圖像像素的緩沖區,它的一維是圖像Y坐標,二維是圖像的X坐標。
      這樣,如果我們要對圖像的某個像素賦值,例如將第一行、第二列的像素賦值為白色,可用下面的Delphi代碼

      var
      P:array[0..100] of PByteArray;//像素數組
      x,y:Integer;
      begin
        for y:=0 to Bmp.Height-1 do
        begin
          P[y]:=Bmp.ScanLine[y];//將圖片所有像素值存入P
        end;
        y:=0;//第一行
        x:=1;//第二列
        P[y][x*3]:=255;//像素的第一字節
        P[y][x*3+1]:=255;//像素的第二字節
        P[y][x*3+2]:=255;//像素的第三字節
      end;


      上面的代碼中,我們使用的圖像是24位色的(TPixelFormat:=pf24bit),也就是一張真彩色的圖片,pf24bit的圖像中,每個像素在內存中占用三個字節,分別表示RGB值的分量,所以我們可以對三個字節直接賦值

      在其它類型的圖像中就不一定能這樣賦值了

      TPixelFormat:=pf1bit的圖像(單色圖)中每像素用1位來表示,所以要使用位操作來給像素賦值

      TPixelFormat:=pf4bit的圖像中每像素用4位來表示,也要使用位操作來給像素賦值

      TPixelFormat:=pf8bit的圖像中每像素用8位來表示,可以使用Byte類型的值給像素賦值,不過這類圖像比較特殊,它的像素值并不是真正的顏色值,而只是調色板上顏色的索引值,這點要注意

      TPixelFormat:=pf15bit的圖像也是一種比較特殊的圖像,它每像素用16位來表示,第1位為0,后15位每5位分別表示RGB值,所以也要使用位操作來給像素賦值

      TPixelFormat:=pf16bit的圖像中每像素用16位來表示,綠色占6位,其它紅、藍兩種顏色占5位(為什么要這樣?我也不知道,要問制定Bitmap格式的人了,據說是因為人眼對綠色比較敏感)

      TPixelFormat:=pf24bit的圖像每個像素用3個字節表示,這就不說了,參看上面的代碼

      TPixelFormat:=pf32bit的圖像每個像素用4個字節表示,前面3個字節分別表示RGB值的分量,最后一個字節表示Alpha值

      posted @ 2023-11-14 22:03  熊大熊二  閱讀(298)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲人成网站在线观看| 国产偷国产偷亚洲综合av| 日韩高清亚洲日韩精品一区二区| 男女猛烈无遮挡免费视频| 99riav精品免费视频观看| 欧美成人aaa片一区国产精品| 亚洲国产成人久久精品app| 99久久99这里只有免费费精品| 大乳丰满人妻中文字幕日本 | 色综合 图片区 小说区| 1000部拍拍拍18勿入免费视频| 人妻少妇精品系列| 中文字幕日韩区二区三区| 少妇尿尿一区二区在线免费| 91青青草视频在线观看的| 制服 丝袜 亚洲 中文 综合| 亚洲人妻一区二区精品| 国产精品美女AV免费观看| 白丝乳交内射一二三区| 成人无码区在线观看| 国产精品av免费观看| 无码国产偷倩在线播放| 国产精品精品一区二区三| 无码国产偷倩在线播放老年人| 亚洲一区中文字幕人妻| 人妻中文字幕av资源站| 人妻中文字幕在线视频无码| 99久久国产成人免费网站| 亚洲天堂男人天堂女人天堂| 人妻偷拍一区二区三区| 成人3d动漫一区二区三区| 国产午夜福利视频一区二区| 一区二区三区放荡人妻| caoporn免费视频公开| 国产99久久精品一区二区| 亚洲AV无码不卡在线播放| 国产三级a三级三级| 综合久久av一区二区三区| 欧美老熟妇乱子伦牲交视频| 亚洲区中文字幕日韩精品| 欧美成人午夜在线观看视频|