Erstellen Sie Ihr Lithophan zu GIF über C#
Erstellen Sie Ihre eigenen .NET-Apps, um Ihre Lithophanie-zu-GIF-Dateien mit serverseitigen APIs zu erstellen.
So erstellen Sie Ihre Lithophanie-zu-GIF-Datei mit C#
Um Ihre Lithophanie-zu-GIF-Datei zu erstellen, verwenden wir
API, eine funktionsreiche, leistungsstarke und benutzerfreundliche API für C#-Plattform, mit der Sie Ihre Lithophanie erstellen können. Offen
Paketmanager, suche nach Aspose.3D und installieren. Sie können auch den folgenden Befehl in der Paket-Manager-Konsole verwenden.
Paket-Manager-Konsolenbefehl
PM> Install-Package Aspose.3D
Schritte zum Erstellen Ihres Lithophane-to-GIF über C#
Aspose.3D macht es den Entwicklern leicht, mit nur wenigen Codezeilen Ihre Lithophanie für die GIF-Datei zu erstellen.
- Erstellen Sie einige neue Parameter und erstellen Sie ein Mesh-Objekt- Führen Sie Rechenoperationen an Mesh-Objekten durch- Die GIF-Datei lädt die 3D-Szene über die Mesh-Klasse- Rufen Sie die Scene.Save-Methode mit Objekt auf
System Anforderungen
Aspose.3D for .NET wird auf allen wichtigen Betriebssystemen unterstützt. Stellen Sie einfach sicher, dass Sie die folgenden Voraussetzungen erfüllen.
- Microsoft Windows oder ein kompatibles Betriebssystem mit .NET Framework, .NET Core, Mono- Entwicklungsumgebung wie Microsoft Visual Studio- Aspose.3D for .NET in Ihrem Projekt referenziert
C#-Code zum Erstellen Ihres Lithophane-zu-GIF
//Das Originalbild, das hochgeladen werden muss, und die 3D-Dateiausgabe nach dem Speichern
string file = "template.gif";
string output =System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".fbx";
//Erstellen Sie einige neue Parameter
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;//Die Leinwandbreite beträgt 200,0 mm
float height = width / td.Width * td.Height;
float thickness = 10.0f;//10mm Dicke
float layers = thickness / layerHeight;
int widthSegs = (int)Math.Floor(width / nozzleSize);
int heightSegs = (int)Math.Floor(height / nozzleSize);
//Führen Sie Rechenoperationen an Mesh-Objekten durch
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++;
}
}
//Generieren Sie eine 3D-Szene und speichern Sie Objekte
var scene = new Scene(mesh);
scene.Save(output, FileFormat.FBX7400ASCII);
//Die aufzurufende Beispielmethode
static float Sample(float[,] data, int w, int h, float x, float y)
{
return data[(int)(x * w), (int)(y * h)];
}
//ToGrayscale-Methode zum Aufrufen
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;
}
Über Aspose.3D for .NET API
Aspose.3D ist eine CAD und Gameware API zum Laden, Modifizieren und Konvertieren von 3D Dateien. API ist eigenständig und erfordert keine 3D-Modellierungs- oder Rendering-Software. Man kann API einfach für Discreet3DS, WavefrontOBJ, STL (ASCII, binär), Universal3D, FBX (ASCII, binär), Collada, glTF, PLY, GLB, DirectX und weitere Formate.Kostenlose App zum Erstellen Ihrer Lithophane zu GIF
Sehen Sie sich unsere Live-Demos an Lithophanie GIF mit folgenden Vorteilen.
Andere unterstützte App zum Erstellen Ihrer Lithophane-Formate
Mit C# kann One Ihre Lithophanie auch in vielen anderen Dateiformaten erstellen, einschließlich.