Gambar JPG ke Lithophane C#

Gambar JPG banyak digunakan untuk menyimpan gambar, gambar, dan informasi visual lainnya. Sedangkan litophane merepresentasikan citra tiga dimensi yang karakteristiknya berubah bergantung pada sumber cahaya di belakangnya. Artikel ini membahas cara mengonversi gambar JPG menjadi litofan di C#.

JPG Image to Lithophane Converter – Instalasi C# API

Aspose.3D for .NET API dapat digunakan untuk memanipulasi model tiga dimensi yang berbeda. Cukup konfigurasikan API dengan mengunduh file DLL dari bagian Unduhan atau dengan perintah instalasi NuGet berikut:

PM> Install-Package Aspose.3D

Konversi Gambar JPG ke Lithophane di C#

Anda dapat mengonversi gambar JPG ke Lithophane dengan langkah-langkah berikut:

  • Muat gambar JPG masukan.
  • Melakukan operasi komputasi pada objek Mesh.
  • Hasilkan adegan 3d dan simpan objek menggunakan metode Save.

Kode contoh berikut menunjukkan cara mengonversi Gambar JPG ke Lithophane secara terprogram dalam C#:

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

// Buat beberapa parameter baru
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);

// Melakukan operasi komputasi pada objek Mesh
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++;
    }
}

// Hasilkan adegan 3d dan simpan objek
Aspose.ThreeD.Scene scene = new Aspose.ThreeD.Scene(mesh);
scene.Save(output, Aspose.ThreeD.FileFormat.FBX7400ASCII);

// Metode sampel untuk dipanggil
static float Sample(float[,] data, int w, int h, float x, float y)
{
    return data[(int)(x * w), (int)(y * h)];
}

// Metode ToGrayscale untuk memanggil
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;
}

Dapatkan Lisensi Sementara Gratis

Anda dapat mengevaluasi API dalam kapasitas penuhnya dengan meminta lisensi sementara gratis.

Demo Daring

Silakan coba aplikasi web JPG Image to Lithophane Converter yang dikembangkan menggunakan API ini.

Kesimpulan

Pada artikel ini, Anda telah menjelajahi konversi Gambar JPG ke litofan. Anda dapat menggunakan litofan untuk membuat model 3D, ia menggunakan ketebalan untuk memantulkan kegelapan gambar dan Anda dapat melihat gambar saat Anda meletakkan sumber cahaya di belakang model yang dicetak. Selanjutnya, Anda dapat mengunjungi bagian dokumentasi untuk melihat fitur lain yang ditawarkan oleh API. Jika Anda melihat adanya ambiguitas, harap hubungi kami di forum.

Lihat juga

Ubah USDZ ke HTML dalam C#