2010-02-12 26 views
9

tôi nhiều hơn một nhà phát triển java và có một cách tiêu chuẩn của việc đọc hình ảnh:Tôi có thể đọc/tải hình ảnh bằng C++ bằng cách nào?

BufferedImage img = null; 
try { 
    img = ImageIO.read(new File("strawberry.png")); 
} catch (IOException e) { 
} 

nhưng C++ cách tải hình ảnh là gì? Tôi muốn tải tất cả các hình ảnh trong một thư mục cụ thể vào một mảng hoặc như vậy.

+3

Không có cách nào tiêu chuẩn để thực hiện việc này trong C++ - Thư viện chuẩn C++ không hỗ trợ hình ảnh. Bạn sẽ phải sử dụng một trong nhiều thư viện xử lý ảnh không chuẩn. –

+5

Tôi muốn sử dụng magick ++ ... –

+1

Vui lòng chỉ định OS. Không có xử lý hình ảnh trong C++ đúng. –

Trả lời

8

Cá nhân, tôi thích thư viện ImageMagick.

Có rất nhiều thư viện xử lý đồ họa có sẵn và không có lựa chọn nào nổi bật như vượt trội so với những người khác. Lời khuyên của tôi là tạo một danh sách ngắn gồm 3 hoặc 4, hãy xem tài liệu hướng dẫn cho mỗi tài liệu và cố gắng viết một chương trình nửa trang đơn giản với mỗi chương trình. Sử dụng bất kỳ cái nào bạn tìm thấy dễ dàng nhất để sử dụng.

1

Thư viện bạn sẽ muốn sử dụng để tải hình ảnh sẽ tùy thuộc vào những gì bạn định làm với nó. Nếu bạn đang sử dụng một khung như QT hoặc wxWidgets, nó sẽ cung cấp các thói quen tải hình ảnh.

Một khả năng khác là sử dụng thư viện SDL Image và để hoạt động trên các bề mặt SDL, cho phép bạn làm việc xuống cấp pixel nếu cần.

7

Không có "cách" chuẩn trong C++ để tải hình ảnh hoặc tệp của bất kỳ loại nào khác. Tính năng đó được cung cấp bởi (thường là bên thứ ba) thư viện.

Trên Windows, bạn có thể sử dụng API GDI hoặc DirectX để tải hình ảnh vào bộ nhớ.

Bạn cũng có thể sử dụng bất kỳ thư viện nào khác. Một số mà tôi suy nghĩ:

Có nhiều, nhiều thứ khác để xem và một số có thể phù hợp hơn những người khác tùy thuộc vào những gì bạn đang cố gắng làm. Ví dụ: nếu bạn chỉ định làm việc với tệp JPEG, thì bạn sẽ muốn sử dụng libIJG. Hoặc nếu bạn chỉ sử dụng PNG, bạn có thể tìm thấy libPNG hoặc cairo để phù hợp hơn.

1

Qt có hỗ trợ tốt cho hình ảnh, miễn phí và đa nền tảng.

Kiểm tra các qimage class

Các vấn đề liên quan