小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

分割圖片的例子

 獨(dú)孤求財(cái) 2012-03-28
問題來源: http://www.cnblogs.com/del/archive/2009/01/30/1381263.html#1439476

這個(gè)例子是把一張圖片平均分成了 4 份, 順序是: 左、右、上、下; 沒使用循環(huán)操作, 顯得有點(diǎn)笨, 但容易理解.
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  path = 'c:\temp\test.bmp'; {先準(zhǔn)備好測(cè)試圖片}
var
  bit: TBitmap;
  bits: array[0..3] of TBitmap; {假如分成 4 份}
  i,w,h: Integer;
begin
  bit := TBitmap.Create;
  bit.LoadFromFile(path);
  w := bit.Width div 2;
  h := bit.Height div 2;

  for i := 0 to 3 do
  begin
    bits[i] := TBitmap.Create;
    bits[i].SetSize(w, h);
  end;

  BitBlt(bits[0].Canvas.Handle, 0, 0, w, h, bit.Canvas.Handle, 0, 0, SRCCOPY);
  BitBlt(bits[1].Canvas.Handle, 0, 0, w, h, bit.Canvas.Handle, w, 0, SRCCOPY);
  BitBlt(bits[2].Canvas.Handle, 0, 0, w, h, bit.Canvas.Handle, 0, h, SRCCOPY);
  BitBlt(bits[3].Canvas.Handle, 0, 0, w, h, bit.Canvas.Handle, w, h, SRCCOPY);

  for i := 0 to 3 do
  begin
    bits[i].SaveToFile(ChangeFileExt(path, Format('.%.3d.bmp', [i+1])));
    bits[i].Free;
  end;

  bit.Free;
end;

end.

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多