JPG تُستخدم الصور على نطاق واسع لحفظ الصور والرسومات والمعلومات المرئية الأخرى. في حين أن الليثوفان يمثل صورة ثلاثية الأبعاد تغير خصائصها اعتمادًا على مصدر الضوء خلفها. تتناول هذه المقالة كيفية تحويل صورة JPG إلى lithophane في C#.
JPG Image to Lithophane Converter - تثبيت C# API
Aspose.3D for .NET يمكن استخدام API لمعالجة النماذج ثلاثية الأبعاد المختلفة. ما عليك سوى تكوين API عن طريق تنزيل ملفات DLL من قسم التنزيلات أو باستخدام أمر التثبيت NuGet التالي:
PM> Install-Package Aspose.3D
تحويل صورة JPG إلى Lithophane في C#
يمكنك تحويل صورة JPG إلى Lithophane بالخطوات التالية:
- قم بتحميل صورة JPG المدخلة.
- إجراء عمليات حسابية على كائنات الشبكة.
- قم بإنشاء مشهد ثلاثي الأبعاد وحفظ الكائنات باستخدام طريقة حفظ.
يوضح نموذج التعليمات البرمجية التالي كيفية تحويل صورة 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++;
}
}
// إنشاء مشهد ثلاثي الأبعاد وحفظ الكائنات
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 الذي تم تطويره باستخدام واجهة برمجة التطبيقات هذه.
استنتاج
في هذه المقالة ، قمت باستكشاف تحويل صورة JPG إلى مادة الليثوفان. يمكنك استخدام الليثوفان لإنشاء نموذج ثلاثي الأبعاد ، ويستخدم سمكًا ليعكس ظلام الصورة ويمكنك رؤية الصورة عندما تضع مصدرًا للضوء خلف النموذج المطبوع. علاوة على ذلك ، يمكنك زيارة قسم التوثيق للتحقق من الميزات الأخرى التي تقدمها API. في حال لاحظت أي غموض ، يرجى التواصل معنا على المنتدى.