BGRABitmap图像操作8:大理石纹理
来源:互联网 发布:oauth2.0 java 编辑:程序博客网 时间:2024/04/30 12:42
unit Unit1;{$mode objfpc}{$H+}interfaceuses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, BGRABitmap, BGRABitmapTypes, BGRAGradients, math;type { TForm1 } TForm1 = class(TForm) procedure FormPaint(Sender: TObject); private { private declarations } public { public declarations } end;var Form1: TForm1;implementation{$R *.lfm}{ TForm1 }function Interp256(value1,value2,position: integer): integer; inline;begin result := (value1*(256-position) + value2*position) shr 8;end;function Interp256(color1,color2: TBGRAPixel; position: integer): TBGRAPixel; inline;begin result.red := Interp256(color1.red,color2.red, position); result.green := Interp256(color1.green,color2.green, position); result.blue := Interp256(color1.blue,color2.blue, position); result.alpha := Interp256(color1.alpha,color2.alpha, position);end;function CreateCustomTexture(tx,ty: integer): TBGRABitmap;var colorOscillation: integer; p: PBGRAPixel; i: Integer;begin result := CreateCyclicPerlinNoiseMap(tx,ty,1,1,1); p := result.Data; for i := 0 to result.NbPixels-1 do begin //colorOscillation := round(((sin(p^.red*Pi/32)+1)/2)*256); colorOscillation := round(power((sin(p^.red*Pi/80)+1)/2,0.2)*256); p^ := Interp256(BGRA(181,157,105),BGRA(228,227,180),colorOscillation); inc(p); end;end;procedure TForm1.FormPaint(Sender: TObject);var image,tex: TBGRABitmap;begin image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace))); tex := CreateCustomTexture(100,100); image.FillRoundRectAntialias(20,20,300,200,20,20,tex); image.RoundRectAntialias(20,20,300,200,20,20,BGRABlack,1); tex.free; image.Draw(Canvas,0,0,True); image.free;end;end.
0 0
- BGRABitmap图像操作8:大理石纹理
- BGRABitmap图像操作8:纹理
- BGRABitmap图像操作8:彩色纹理
- BGRABitmap图像操作8:彩色纹理,阈值
- BGRABitmap图像操作8:木质纹理
- BGRABitmap图像操作8:纹理,前面椭圆外加一圆角长方形
- BGRABitmap图像操作8:用正弦函数生成纹理
- BGRABitmap图像操作8:轴向的木质纹理
- BGRABitmap图像操作10:使用纹理映射
- BGRABitmap图像操作8:生成纹理,基本的Perlin噪声地图
- BGRABitmap图像操作8:另一个阈值控制方式,生成迷彩纹理
- BGRABitmap图像操作9:用 phong 阴影制作纹理
- BGRABitmap图像操作9b:巧克力纹理背景
- BGRABitmap图像操作10:使用Affine 变换进行纹理映射
- BGRABitmap图像操作14:BGRABitmap的 Canvas2D
- BGRABitmap图像操作9c:同时使用莫林杂点和 phong 阴影制作纹理
- BGRABitmap图像操作9e:用阈值制作雪上印迹纹理
- BGRABitmap图像操作10:线型映射,让纹理图贴到多边形的边上
- ubuntu安装后软件清理
- 在ubuntu下查看本机CPU数
- BGRABitmap图像操作8:另一个阈值控制方式,生成迷彩纹理
- 常用的排序算法
- BGRABitmap图像操作8:用正弦函数生成纹理
- BGRABitmap图像操作8:大理石纹理
- Http协议与TCP协议简单理解后续
- 392. Is Subsequence
- Kubernetes单Pod启动sonarqube
- ubuntu中对话框确定
- c语言using namespace std什么意思
- lesson7 软件和硬件
- 使用递归实现字符串的反转
- 393. UTF-8 Validation