تصویر JPG به Lithophane C#

تصاویر JPG به طور گسترده برای ذخیره تصاویر، نقاشی‌ها و سایر اطلاعات بصری استفاده می‌شوند. در حالی که، lithophane تصویر سه بعدی را نشان می دهد که بسته به منبع نور پشت آن، ویژگی ها را تغییر می دهد. این مقاله نحوه تبدیل یک تصویر JPG به لیتوفان در سی شارپ را پوشش می دهد.

تبدیل تصویر JPG به Lithophane – نصب C# API

Aspose.3D for .NET API را می توان برای دستکاری مدل های سه بعدی مختلف استفاده کرد. به سادگی با دانلود فایل های DLL از بخش Downloads یا با دستور نصب زیر NuGet API را پیکربندی کنید:

PM> Install-Package Aspose.3D

تبدیل تصویر JPG به Lithophane در سی شارپ

با انجام مراحل زیر می توانید یک تصویر JPG را به Lithophane تبدیل کنید:

  • تصویر JPG ورودی را بارگیری کنید.
  • انجام عملیات محاسباتی روی اشیاء مش.
  • با استفاده از روش Save صحنه 3 بعدی تولید کنید و اشیاء را ذخیره کنید.

کد نمونه زیر نحوه تبدیل یک تصویر JPG به Lithophane را به صورت برنامه نویسی در سی شارپ نشان می دهد:

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++;
    }
}

// صحنه سه بعدی تولید کنید و اشیاء را ذخیره کنید
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 Image به لیتوفون پرداخته اید. شما می توانید از لیتوفان برای ایجاد یک مدل سه بعدی استفاده کنید، از ضخامت برای انعکاس تاریکی تصویر استفاده می کند و زمانی که منبع نور را پشت مدل چاپ شده قرار می دهید می توانید تصویر را ببینید. علاوه بر این، برای بررسی سایر ویژگی‌های ارائه شده توسط API، می‌توانید از بخش اسناد دیدن کنید. در صورت مشاهده هرگونه ابهامی، لطفاً با ما در [فروم 12 تماس بگیرید.

همچنین ببینید

تبدیل USDZ به HTML در C#