zoukankan      html  css  js  c++  java
  • 分割图片的例子 回复 "小熊宝" 的问题

    问题来源: http://www.cnblogs.com/del/archive/2009/01/30/1381263.html#1439476

    这个例子是把一张图片平均分成了 4 份, 顺序是: 左、右、上、下; 没使用循环操作, 显得有点笨, 但容易理解.
    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'; {先准备好测试图片}
    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.
    

  • 相关阅读:
    操作excel语法
    MySQL exists的用法介
    vim 快捷键
    mysql中datetime比较大小问题
    MySQL CAST与CONVERT 函数的用法
    tbxvUZIAJH
    springBoot相关
    springCloud
    Spring Boot使用JavaMailSender发送邮件
    RabbitMq 消息队列
  • 原文地址:https://www.cnblogs.com/del/p/1381402.html
Copyright © 2011-2022 走看看