รูปภาพ JPG เป็น Lithophane C#

รูปภาพ JPG ใช้กันอย่างแพร่หลายในการบันทึกรูปภาพ ภาพวาด และข้อมูลภาพอื่นๆ ในขณะที่ lithophane แสดงถึงภาพสามมิติที่เปลี่ยนแปลงลักษณะต่างๆ โดยขึ้นอยู่กับแหล่งกำเนิดแสงที่อยู่เบื้องหลัง บทความนี้ครอบคลุมถึงวิธีการแปลงภาพ JPG เป็น lithophane ใน C#

JPG Image เป็น Lithophane Converter – การติดตั้ง C# API

Aspose.3D for .NET สามารถใช้ API เพื่อจัดการกับโมเดลสามมิติต่างๆ เพียงกำหนดค่า API โดยดาวน์โหลดไฟล์ DLL จากส่วน ดาวน์โหลด หรือด้วยคำสั่งการติดตั้ง NuGet ต่อไปนี้:

PM> Install-Package Aspose.3D

แปลงรูปภาพ JPG เป็น Lithophane ใน C

คุณสามารถแปลงภาพ JPG เป็น Lithophane ได้โดยทำตามขั้นตอนต่อไปนี้:

  • โหลดภาพ JPG อินพุต
  • ดำเนินการคำนวณบนวัตถุตาข่าย
  • สร้างฉาก 3 มิติและบันทึกวัตถุโดยใช้วิธี บันทึก

โค้ดตัวอย่างต่อไปนี้สาธิตวิธีแปลงรูปภาพ JPG เป็น Lithophane โดยทางโปรแกรมใน C#:

string file = "template.jpg";
string output = "file.fbx";

// สร้างพารามิเตอร์ใหม่
Aspose.ThreeD.Render.TextureData td = Aspose.ThreeD.Render.TextureData.FromFile(file);
const float nozzleSize = 0.9f;
const float layerHeight = 0.2f;
var grayscale = ToGrayscale(td);
const float width = 120.0f;
float height = width / td.Width * td.Height;
float thickness = 10.0f;
float layers = thickness / layerHeight;
int widthSegs = (int)Math.Floor(width / nozzleSize);
int heightSegs = (int)Math.Floor(height / nozzleSize);

// ดำเนินการคำนวณบนวัตถุตาข่าย
Aspose.ThreeD.Entities.Mesh mesh = new Aspose.ThreeD.Entities.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 Aspose.ThreeD.Utilities.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++;
    }
}

// สร้างฉาก 3 มิติและบันทึกวัตถุ
Aspose.ThreeD.Scene scene = new Aspose.ThreeD.Scene(mesh);
scene.Save(output, Aspose.ThreeD.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(Aspose.ThreeD.Render.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;
}

รับใบอนุญาตชั่วคราวฟรี

คุณสามารถประเมิน API ได้อย่างเต็มประสิทธิภาพโดยขอ ใบอนุญาตชั่วคราวฟรี

การสาธิตออนไลน์

โปรดลองใช้เว็บแอป JPG Image to Lithophane Converter ที่พัฒนาโดยใช้ API นี้

บทสรุป

ในบทความนี้ คุณได้สำรวจการแปลงรูปภาพ JPG เป็น lithophane คุณสามารถใช้ lithophane เพื่อสร้างโมเดล 3 มิติ ใช้ความหนาเพื่อสะท้อนความมืดของภาพ และคุณจะเห็นภาพเมื่อคุณใส่แหล่งกำเนิดแสงไว้ด้านหลังโมเดลที่พิมพ์ นอกจากนี้ คุณสามารถไปที่ส่วน เอกสารประกอบ เพื่อดูคุณสมบัติอื่นๆ ที่นำเสนอโดย API ในกรณีที่คุณสังเกตเห็นความไม่ชัดเจนใดๆ โปรดติดต่อเราที่ ฟอรัม

ดูสิ่งนี้ด้วย

แปลง USDZ เป็น HTML ใน C#