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

C#을(를) 통해 BMP에 대한 Lithophane 생성

자체 .NET 앱을 빌드하여 서버 측 API를 사용하여 BMP 파일에 대한 리소판을 만듭니다.

C#을 사용하여 Lithophane to BMP 파일을 만드는 방법

리소판을 BMP 파일로 만들기 위해 다음을 사용합니다.

Aspose.3D for .NET

API은(는) 리소판을 만드는 데 사용할 C# 플랫폼에 대해 기능이 풍부하고 강력하며 사용하기 쉬운 API입니다. 열려있는

누겟

패키지 관리자, 검색 Aspose.3D 설치합니다. 패키지 관리자 콘솔에서 다음 명령을 사용할 수도 있습니다.

패키지 관리자 콘솔 명령


PM> Install-Package Aspose.3D

C#을(를) 통해 BMP로 리소판을 만드는 단계

Aspose.3D를 사용하면 개발자가 몇 줄의 코드로 BMP 파일에 대한 석판판을 쉽게 만들 수 있습니다.

  • 몇 가지 새 매개변수를 만들고 Mesh 개체를 만듭니다.- 메쉬 개체에 대한 계산 작업 수행- BMP 파일은 Mesh 클래스를 통해 3D 장면을 로드합니다.- 개체와 함께 Scene.Save 메서드를 호출합니다.

시스템 요구 사항

Aspose.3D for .NET은(는) 모든 주요 운영 체제에서 지원됩니다. 다음 전제 조건이 있는지 확인하십시오.

  • Microsoft Windows 또는 .NET Framework, .NET Core, Mono 호환 OS- Microsoft Visual Studio와 같은 개발 환경- 프로젝트에서 참조된 Aspose.3D for .NET
 

BMP에 대한 Lithophane을 만드는 C# 코드


//업로드해야 하는 원본 이미지 및 저장 후 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.2mm
    const float layerHeight = 0.2f;
    var grayscale = ToGrayscale(td);
    const float width = 120.0f;//캔버스 너비는 200.0mm입니다.
    float height = width / td.Width * td.Height;
    float thickness = 10.0f;//10mm 두께
    float layers = thickness / layerHeight;
    int widthSegs = (int)Math.Floor(width / nozzleSize);
    int heightSegs = (int)Math.Floor(height / nozzleSize);

//메쉬 개체에 대한 계산 작업 수행
    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은(는) 3D 파일을 로드, 수정 및 변환하는 CAD 및 Gameware API입니다. API는 독립 실행형이며 3D 모델링 또는 렌더링 소프트웨어가 필요하지 않습니다. Discreet3DS, WavefrontOBJ, STL(ASCII, 바이너리), Universal3D, FBX(ASCII, 바이너리), Collada, glTF, PLY, GLB, DirectX 및 기타 형식.

    BMP로 리소판을 만드는 무료 앱

    라이브 데모를 확인하려면 리소판 BMP 다음과 같은 혜택이 있습니다.

      아무것도 다운로드하거나 설정할 필요가 없습니다
      코드를 작성하거나 컴파일할 필요가 없습니다.
      BMP 파일을 업로드하고 "lithophane" 버튼을 누르기만 하면 됩니다.
      필요한 경우 링크에서 BMP 파일 다운로드

    리소판을 형식으로 만들기 위해 지원되는 기타 앱

    C#을 사용하여 One은 또한 다음을 포함한 많은 다른 파일 형식으로 리소판을 만들 수 있습니다.

    JPEG (공동 사진 전문가 그룹)
    PNG (휴대용 네트워크 그래픽)
    TGA (Truevision 고급 래스터 어댑터)
    JPG (공동 사진 전문가 그룹)
    GIF (그래픽 교환 형식)
    사소한 말다툼 (태그가 지정된 이미지 파일 형식)