ไลบรารี่สำหรับโหลดรูปภาพลงในพื้นผิว, Linux, C และ OpenGl


9

ฉันกำลังมองหาไลบรารี่ C ที่เรียบง่ายในตัวสำหรับ Linux เพื่อโหลดรูปภาพจากไฟล์ลงในพื้นผิว OpenGL ใบอนุญาตควรจะค่อนข้างเสรี: zlib, bsd, mit หรืออะไรบางอย่าง ฉันพบดินแต่ไม่ได้รับการปรับปรุงเป็นเวลานาน มีอย่างอื่นหรือฉันจะต้องเขียนของตัวเอง?

PS ฉันใช้ glfw มีฟังก์ชั่นที่ไม่รองรับการโหลดภาพเท่านั้น

คำตอบ:


5

ฉันใช้ภาพ STBสำหรับการโหลดภาพส่วนใหญ่ ตัวเล็ก ๆ ไม่มีสตริงแนบการติดตั้ง png และรูปแบบไฟล์อื่น ๆ


3
SOIL เป็นตัวห่อหุ้มแสงรอบ ๆ stb_image

อาฉันไม่รู้เรื่องนั้น
ถือเป็นโมฆะ

11

ดินใช้งานได้ดี ใครจะสนใจถ้ามันไม่ได้รับการปรับปรุงใน "เวลานาน"? นั่นหมายถึงว่ามันเสถียรและเข้าใจดี

(จริง ๆ แล้วมันได้รับการปรับปรุงในปี 2008 ซึ่งไม่นานมานี้เลย)


สำหรับผู้ที่เห็นสิ่งนี้ในตอนนี้ - ดินดูเหมือนจะไม่ทำงานบน iOS ดังนั้นหากการพกพาเป็นเป้าหมายของคุณการใช้ stb_image โดยตรงอาจเป็นตัวเลือกที่ดีกว่า
Ed Ropple

2

มีลักษณะที่ปีศาจ


ปีศาจอยู่ภายใต้ LGPL นี่เป็นข้อ จำกัด เล็กน้อยสำหรับฉัน
Michas

1
โปรดทราบว่าตราบใดที่คุณไม่ได้แก้ไขซอร์สโค้ดต้นฉบับคุณสามารถลิงก์ไปยังไลบรารี LGPL และเก็บรหัสหลักของคุณปิด / ส่วนตัว / ใช้เพื่อวัตถุประสงค์ทางการค้า
r2d2rigo

1
ฉันรู้ว่า. อย่างไรก็ตามฉันต้องการลิงก์ทุกอย่างเป็นไฟล์เดียว
Michas

2

ตรวจสอบFreeImage มันเป็นแบบลิขสิทธิ์คู่คุณสามารถเลือก GPL หรือใบอนุญาต FreeImage เสรี รองรับรูปแบบภาพมากกว่าดินและการพัฒนาใช้งานอยู่

ไลบรารีนั้นเขียนด้วยภาษา C ++ แต่มีอินเตอร์เฟสแบบ ANSI C

จากการแนะนำ:

ด้วยอินเตอร์เฟซ ANSI C ทำให้ FreeImage สามารถใช้งานได้ในหลายภาษาเช่น C, C ++, VB, C #, Delphi, Java และภาษาสคริปต์ทั่วไปเช่น Perl, Python, PHP, TCL หรือ Ruby


ดูเหมือนว่าใบอนุญาตไม่ได้เป็นอิสระเพียงพอ
Michas

@Michas ทั้งหมดที่คุณต้องมีคือการยอมรับการใช้ห้องสมุดมิฉะนั้นคุณมีอิสระที่จะแก้ไขแหล่งที่มาและใช้ในโครงการเชิงพาณิชย์ หรือบางทีฉันอาจไม่ได้อ่านใบอนุญาตอย่างถี่ถ้วน?
Oskar N.

ฉันอาจถูกบังคับให้เผยแพร่ซอร์สโค้ดบางส่วน
Michas

ฉันไม่แน่ใจว่าคุณได้รับความคิดนั้นจริง ๆ แล้ว ... คุณกำลังจะปรับเปลี่ยนไลบรารี่ FreeImage (คำใบ้: อาจไม่; จงซื่อสัตย์กับตัวเอง)?
ChrisE

มันไม่ใช่ข้อกำหนดในทางปฏิบัติ ฉันรู้ว่า. ฉันจะมีความสุขมากขึ้นด้วยใบอนุญาตเสรีนิยมมากขึ้น
Michas

0

SillyผลิตพวกCEGUI

ฉันรองรับการโหลด PNG, TGA, JPG และอื่น ๆ และเผยแพร่ด้วยใบอนุญาต MIT

คุณต้องเขียน C wrapper ด้วยตัวคุณเองเพราะไลบรารี่นั้นเขียนด้วย C ++


ปัญหาคือฉันต้องการรวบรวมทุกอย่างด้วยคอมไพเลอร์ C
Michas

0

หากคุณไม่จำเป็นต้องอ่านหลายรูปแบบลองเขียนโค้ดโหลดเดอร์ของคุณเอง ฉันใช้ libjpeg และ libpng โดยตรงและใช้งานง่าย ทั้งสองมีฟังก์ชั่นที่ง่ายมากที่ดึงข้อมูลสเกลไลน์ของข้อมูล RGBA เพียงใส่เข้าไปในอาร์เรย์แล้วอัปโหลดไปยัง OpenGL ทั้งคู่มีโปรแกรมตัวอย่างที่มีประโยชน์และตรงไปตรงมามาก

แม้ว่าฉันจะไม่มีประสบการณ์กับรูปแบบอื่น ๆ แต่ตามความจริงแล้ว PNG + JPEG ครอบคลุม 100% ของความต้องการของเรา (ซึ่งไม่ใช่ระดับที่ไม่สำคัญหรือเป็นงานอดิเรก - ดูที่http://www.mysterystudio.com )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.