HTML JPEG PDF XML JPEG
Aspose.3D  for .NET
JPEG

通過 C# 將您的 Lithophane 創建為 JPEG

構建您自己的 .NET 應用,以使用服務器端 API 將您的 lithophane 創建為 JPEG 文件。

如何使用 C# 創建您的 Lithophane 到 JPEG 文件

為了創建您的 lithophane 到 JPEG 文件,我們將使用

Aspose.3D for .NET

API 是一個功能豐富、功能強大且易於使用的 API for C# 平台,可用於創建您的 lithophane。打開

NuGet

包管理器,搜索 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 文件

    其他支持的應用程序來創建您的 Lithophane 格式

    使用 C#,您還可以將您的 lithophane 創建為許多其他文件格式,包括。

    JPG (聯合攝影專家組)
    PNG (便攜式網絡圖形)
    TGA (Truevision 高級光柵適配器)
    BMP (位圖)
    動圖 (圖形交換格式)
    國際電影節 (標記圖像文件格式)