HTML BMP PDF XML BMP
Aspose.3D  for .NET
BMP

Создайте свой Lithophane в BMP через C#

Создавайте свои собственные приложения .NET, чтобы преобразовывать файлы lithophan в BMP с помощью серверных API.

Как создать файл Lithophane в BMP с помощью C#

Чтобы создать файл lithophane в BMP, мы будем использовать

Aspose.3D for .NET

API — многофункциональная, мощная и простая в использовании платформа API для C#, которую можно использовать для создания литофана. Открыть

NuGet

менеджер пакетов, поиск Aspose.3D и установить. Вы также можете использовать следующую команду из консоли диспетчера пакетов.

Команда консоли диспетчера пакетов


PM> Install-Package Aspose.3D

Шаги по преобразованию Lithophane в BMP через C#

Aspose.3D позволяет разработчикам легко преобразовать литофана в файл BMP, написав всего несколько строк кода.

  • Создайте несколько новых параметров и создайте объект Mesh.- Выполнение вычислительных операций над объектами Mesh- Файл BMP загружает 3D-сцену через класс Mesh- Вызов метода Scene.Save с объектом

Системные Требования

Aspose.3D for .NET поддерживается во всех основных операционных системах. Просто убедитесь, что у вас есть следующие предпосылки.

  • Microsoft Windows или совместимая ОС с .NET Framework, .NET Core, Mono- Среда разработки, такая как Microsoft Visual Studio- Aspose.3D for .NET упоминается в вашем проекте
 

C# код для преобразования вашего Lithophane в BMP


//Исходное изображение, которое необходимо загрузить, и выходной 3D-файл после сохранения.
    string file = "template.bmp";
    string output =System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".fbx";

//Создайте несколько новых параметров
    var td= TextureData.FromFile(file);
    const float nozzleSize = 0.9f;//0,2 мм
    const float layerHeight = 0.2f;
    var grayscale = ToGrayscale(td);
    const float width = 120.0f;//ширина холста 200,0 мм
    float height = width / td.Width * td.Height;
    float thickness = 10.0f;//толщина 10 мм
    float layers = thickness / layerHeight;
    int widthSegs = (int)Math.Floor(width / nozzleSize);
    int heightSegs = (int)Math.Floor(height / nozzleSize);

//Выполнение вычислительных операций над объектами Mesh
    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++;
        }
    }

//Создание 3D-сцены и сохранение объектов
    var scene = new Scene(mesh);
    scene.Save(output, 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(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;
    }
 
  • О Aspose.3D for .NET API

    Aspose.3D – это CAD и Gameware API для загрузки, изменения и преобразования файлов 3D. API является автономным и не требует никакого 3D программного обеспечения для моделирования или визуализации. Можно легко использовать API для Discreet3DS, WavefrontOBJ, STL (ASCII, двоичный), Universal3D, FBX (ASCII, двоичный), Collada, glTF, PLY, GLB, DirectX и другие форматы.

    Бесплатное приложение для преобразования литофана в BMP

    Проверьте наши живые демонстрации, чтобы Литофан БМП со следующими преимуществами.

      Не нужно ничего скачивать или настраивать
      Нет необходимости писать или компилировать код
      Просто загрузите файл BMP и нажмите кнопку «Литофан».
      Загрузите файл BMP по ссылке, если требуется

    Другое поддерживаемое приложение для создания литофана в форматах

    Используя C#, можно также создать свой lithophane во многих других форматах файлов, включая.

    JPEG (Объединенная группа экспертов по фотографии)
    PNG (Портативная сетевая графика)
    ТГА (Расширенный растровый адаптер Truevision)
    JPG (Объединенная группа экспертов по фотографии)
    гифка (Графический формат обмена)
    ТИФФ (Формат файла изображения с тегами)