HTML
GIF
PDF
XML
GIF
GIF
通过 C# 创建您的 Lithophane 到 GIF
构建您自己的 .NET 应用,以使用服务器端 API 创建您的 lithophane 到 GIF 文件。
如何使用 C# 创建您的 Lithophane 到 GIF 文件
为了创建您的 lithophane to GIF 文件,我们将使用
API 是一个功能丰富、功能强大且易于使用的 API for C# 平台,可用于创建您的 lithophane。打开
包管理器,搜索 Aspose.3D 并安装。您也可以从包管理器控制台使用以下命令。
包管理器控制台命令
PM> Install-Package Aspose.3D
通过 C# 创建 Lithophane 到 GIF 的步骤
Aspose.3D 让开发人员只需几行代码即可轻松地将您的 lithophane 创建为 GIF 文件。
- 创建一些新参数并创建一个 Mesh 对象- 对 Mesh 对象执行计算操作- GIF 文件通过 Mesh 类加载 3d 场景- 使用对象调用 Scene.Save 方法
系统要求
Aspose.3D for .NET 在所有主要操作系统上都受支持。只需确保您具有以下先决条件。
- Microsoft Windows 或具有 .NET Framework、.NET Core、Mono 的兼容操作系统- Microsoft Visual Studio 等开发环境- Aspose.3D for .NET 在您的项目中引用
C# 代码来创建您的 Lithophane 到 GIF
//需要上传的原图及保存后输出的3d文件
string file = "template.gif";
string output =System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".fbx";
//创建一些新参数
var td= TextureData.FromFile(file);
const float nozzleSize = 0.9f;//0.2mm
const float layerHeight = 0.2f;
var grayscale = ToGrayscale(td);
const float width = 120.0f;//画布宽度为 200.0mm
float height = width / td.Width * td.Height;
float thickness = 10.0f;//10mm厚
float layers = thickness / layerHeight;
int widthSegs = (int)Math.Floor(width / nozzleSize);
int heightSegs = (int)Math.Floor(height / nozzleSize);
//对 Mesh 对象执行计算操作
var mesh = new Mesh();
for (int y = 0; y < heightSegs; y++)
{
float dy = (float)y / heightSegs;
for (int x = 0; x < widthSegs; x++)
{
float dx = (float)x / widthSegs;
float gray = Sample(grayscale, td.Width, td.Height, dx, dy);
float v = (1 - gray) * thickness;
mesh.ControlPoints.Add(new Vector4(dx * width, dy * height, v));
}
}
for (int y = 0; y < heightSegs - 1; y++)
{
int row = (y * heightSegs);
int ptr = row;
for (int x = 0; x < widthSegs - 1; x++)
{
mesh.CreatePolygon(ptr, ptr + widthSegs, ptr + 1);
mesh.CreatePolygon(ptr + 1, ptr + widthSegs, ptr + widthSegs + 1);
ptr++;
}
}
//生成 3d 场景并保存对象
var scene = new Scene(mesh);
scene.Save(output, FileFormat.FBX7400ASCII);
//调用的示例方法
static float Sample(float[,] data, int w, int h, float x, float y)
{
return data[(int)(x * w), (int)(y * h)];
}
//ToGrayscale 方法调用
static float[,] ToGrayscale(TextureData td)
{
var ret = new float[td.Width, td.Height];
var stride = td.Stride;
var data = td.Data;
var bytesPerPixel = td.BytesPerPixel;
for (int y = 0; y < td.Height; y++)
{
int ptr = y * stride;
for (int x = 0; x < td.Width; x++)
{
var v = (data[ptr] * 0.21f + data[ptr + 1] * 0.72f + data[ptr + 2] * 0.07f) / 255.0f;
ret[x, y] = v;
ptr += bytesPerPixel;
}
}
return ret;
}
关于Aspose.3D for .NET API
Aspose.3D 是用于加载、修改和转换 3D 文件的 CAD 和游戏软件 API。 API 是独立的,不需要任何 3D 建模或渲染软件。可以轻松地将 API 用于 Discreet3DS、WavefrontOBJ、STL(ASCII,二进制)、Universal3D、FBX(ASCII,二进制)、Collada、glTF、PLY、 GLB、DirectX 和更多格式。免费应用程序来创建你的 Lithophane 到 GIF
查看我们的现场演示 立陶宛 GIF 具有以下好处。
无需下载或设置任何东西
无需编写或编译代码
只需上传 GIF 文件并点击“lithophane”按钮
如果需要,从链接下载 GIF 文件