HTML
JPEG
PDF
XML
JPEG
JPEG
通過 C# 將您的 Lithophane 創建為 JPEG
構建您自己的 .NET 應用,以使用服務器端 API 將您的 lithophane 創建為 JPEG 文件。
如何使用 C# 創建您的 Lithophane 到 JPEG 文件
為了創建您的 lithophane 到 JPEG 文件,我們將使用
API 是一個功能豐富、功能強大且易於使用的 API for C# 平台,可用於創建您的 lithophane。打開
包管理器,搜索 Aspose.3D 並安裝。您也可以從包管理器控制台使用以下命令。
包管理器控制台命令
PM> Install-Package Aspose.3D
通過 C# 將 Lithophane 創建為 JPEG 的步驟
Aspose.3D 讓開發人員只需幾行代碼即可輕鬆地將您的 lithophane 創建為 JPEG 文件。
- 創建一些新參數並創建一個 Mesh 對象- 對 Mesh 對象執行計算操作- JPEG文件通過Mesh類加載3d場景- 使用對象調用 Scene.Save 方法
系統要求
Aspose.3D for .NET 在所有主要操作系統上都受支持。只需確保您具有以下先決條件。
- Microsoft Windows 或具有 .NET Framework、.NET Core、Mono 的兼容操作系統- Microsoft Visual Studio 等開發環境- Aspose.3D for .NET 在您的項目中引用
C# 代碼將您的 Lithophane 創建為 JPEG
//需要上傳的原圖及保存後輸出的3d文件
string file = "template.jpeg";
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 到 JPEG
查看我們的現場演示 石版畫 JPEG 具有以下好處。
無需下載或設置任何東西
無需編寫或編譯代碼
只需上傳 JPEG 文件並點擊“lithophane”按鈕
如果需要,從鏈接下載 JPEG 文件