以下是我写关于图片拉伸的代码,希望高手能帮我优化下代码或者提供个更好的方法!
比如360界面也是切割图片在组合在一起成主界面的,我希望能得到学习!procedure TForm1.BitBtn1Click(Sender: TObject);
var
  source,NewBmp,YBmp : TBitmap;
  M:Integer;
begin
  //初始化变量
  NewBmp := TBitmap.Create;
  source   :=   TBitmap.Create;
  YBmp := TBitmap.Create;
  M:=0;
  //加载图片
  Source.loadfromfile( 'C:\9.bmp');
  //设置原图宽高
  YBmp.Width:=710;
  YBmp.Height:=500;
  //设置图片分割的宽高
  NewBmp.Width:=8;
  NewBmp.Height:= source.Height;
  //分割出左边的图片(包括左边的边与上下两角)
  NewBmp.Canvas.CopyRect(Rect(0,0,NewBmp.Width,NewBmp.Height),source.Canvas,
  Rect(0,0,NewBmp.Width,NewBmp.Height));
  //把左边图片写入原图去并记录宽度
  YBmp.Canvas.Draw(0, 0, NewBmp);
  M:=8;
  //分割出中间的图片
  NewBmp.Canvas.CopyRect(Rect(0,0,NewBmp.Width,NewBmp.Height),source.Canvas,
  Rect(8,0,8+NewBmp.Width,NewBmp.Height));
  //填充中间部分
  while M <= YBmp.Width-8 do begin
    YBmp.Canvas.Draw(M, 0, NewBmp);
    M:=M+8;
  end;
  //分割出右边的图片(包括右边的边与上下两角)
  NewBmp.Canvas.CopyRect(Rect(0,0,NewBmp.Width,NewBmp.Height),source.Canvas,
  Rect(Source.Width-8,0,Source.Width-8+NewBmp.Width,NewBmp.Height));
  YBmp.Canvas.Draw(YBmp.Width-8, 0, NewBmp);
  Image1.Picture.Assign(YBmp);
  NewBmp.Free;
end;

解决方案 »

  1.   

    汽车手机都是山寨吧,新机器还是换手机去吧,山寨机这情况都正常,换个国产厂机就行,价格也贵不了多少,质量也成熟
      

  2.   

    学习学习360界面不能放大或者缩小
    根本不用拉伸,应该都是一张张合成的
      

  3.   

    360功能大全里有个叫 360性能体验 的 就是采取这样的方法 把一张图片给拉伸 但我感觉我写的这个方法不是最好的  我希望有牛人能给出更好的方法 让小弟学习