Thư viện để tải hình ảnh vào kết cấu, Linux, C và OpenGl


9

Tôi đang tìm kiếm thư viện C đơn giản, độc lập cho Linux để tải hình ảnh từ các tệp vào kết cấu OpenGL. Giấy phép nên khá tự do: zlib, bsd, mit hoặc một cái gì đó. Tôi đã tìm thấy SOIL , tuy nhiên nó đã không được cập nhật trong một thời gian dài. Có cái gì khác, hoặc tôi phải tự viết?

PS tôi sử dụng glfw. Chỉ có các chức năng không dùng nữa để tải hình ảnh.

Câu trả lời:


5

Tôi sử dụng hình ảnh STB cho hầu hết tải hình ảnh. Một bản thân nhỏ chứa không có chuỗi đính kèm thực hiện png và các định dạng tệp khác.


3
SOIL là một trình bao bọc ánh sáng xung quanh stb_image.

Ah, tôi đã không nhận thức được điều đó.
khoảng trống

11

SOIL hoạt động tuyệt vời. Ai quan tâm nếu nó không được cập nhật trong một "thời gian dài"? Điều đó chỉ có nghĩa là nó ổn định và được hiểu rõ.

(Nó thực sự đã được cập nhật vào năm 2008, cách đây không lâu.)


Đối với những người đang thấy điều này ngay bây giờ - SOIL dường như không hoạt động trên iOS, vì vậy nếu tính di động là mục tiêu của bạn, sử dụng stb_image trực tiếp có thể là một lựa chọn tốt hơn.
Ed Ropple

2

Hãy nhìn vào DevIL .


DevIL thuộc LGPL. Điều này là quá ít hạn chế đối với tôi.
Michas

1
Hãy nhớ rằng miễn là bạn không sửa đổi mã nguồn gốc, bạn có thể liên kết với thư viện LGPL và giữ mã chính của bạn đóng / riêng tư / được sử dụng cho mục đích thương mại.
r2d2rigo

1
Tôi biết. Tuy nhiên tôi muốn liên kết mọi thứ thành tập tin duy nhất.
Michas

2

Kiểm tra FreeImage . Được cấp phép kép, bạn có thể chọn GPL hoặc giấy phép FreeImage tự do. Nó hỗ trợ nhiều định dạng hình ảnh hơn SOIL và phát triển đang hoạt động.

Bản thân thư viện được viết bằng C ++, nhưng nó có giao diện ANSI C.

Từ phần giới thiệu:

Nhờ giao diện ANSI C, FreeImage có thể sử dụng được bằng nhiều ngôn ngữ bao gồm C, C ++, VB, C #, Delphi, Java và cả các ngôn ngữ kịch bản thông dụng như Perl, Python, PHP, TCL hoặc Ruby.


Có vẻ như giấy phép không đủ tự do.
Michas

@Michas Tất cả những gì nó đòi hỏi bạn là phải thừa nhận việc sử dụng thư viện, nếu không bạn có thể tự do sửa đổi các nguồn và sử dụng trong các dự án thương mại. Hoặc có lẽ tôi đã không đọc giấy phép đủ cẩn thận?
Oskar N.

Tôi có thể bị buộc phải xuất bản một số mã nguồn.
Michas

Tôi không chắc chắn nơi bạn đang có ý tưởng đó ... bạn có thực sự sẽ sửa đổi thư viện FreeImage (gợi ý: có thể không; trung thực với chính mình)?
ChrisE

Nó không phải là một yêu cầu thực tế. Tôi biết. Tôi sẽ hạnh phúc hơn với giấy phép tự do hơn.
Michas

0

Silly được sản xuất các chàng trai CEGUI .

Tôi hỗ trợ tải PNG, TGA, JPG, v.v. Và nó được phát hành với giấy phép MIT.

Bạn sẽ phải tự viết một trình bao bọc C vì thư viện được viết bằng C ++.


Vấn đề là tôi muốn biên dịch mọi thứ với trình biên dịch C.
Michas

0

Nếu bạn không cần phải đọc nhiều định dạng, hãy xem xét việc viết mã trình tải của riêng bạn. Tôi sử dụng libjpeg và libpng trực tiếp và chúng khá dễ sử dụng. Cả hai đều có các chức năng rất đơn giản, về cơ bản tìm nạp một đường quét dữ liệu RGBA, chỉ cần đặt nó vào một mảng và sau đó tải lên OpenGL. Cả hai đều có các chương trình ví dụ rất hữu ích và đơn giản.

Tôi không có kinh nghiệm với các định dạng khác, mặc dù. Nhưng thành thật mà nói, PNG + JPEG đáp ứng 100% nhu cầu của chúng tôi (không tầm thường cũng không theo sở thích - xem http://www.mysterystudio.com )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.