01/10/2018, 12:06

Sử dụng thư viện graphics.h trong c/c++ để hiện thị 1 file ảnh png?

chào các bạn
mình đang làm bài tập xử lý ảnh số, có 1 số vấn đề như sau
mình cần đọc cấu trúc nhị phân của ảnh png, và giải nén ảnh, sau đó hiển thị ảnh ra,
mình muốn hỏi phần hiển thị 1 ảnh png, mình có thể dùng thư viện graphics.h trong c/c++ để hiện thị không, vì mình cũng ít dùng thư viện này nên không rõ, cơ bản là chỉ cần tạo ra 1 cửa sổ m.n pixel, rồi set được màu cho từng pixel là được, chỉ cần hỗ trợ mô hình màu greyscale với rbg và rbga thôi
xincamon

HelloWorld viết 14:15 ngày 01/10/2018

Help help help

Dark.Hades viết 14:19 ngày 01/10/2018

Thằng đấy cũ lắm rồi, màu cũng không chuẩn
Dùng mấy thư viện mới mà nhẹ ấy

GitHub

dtschump/CImg

The CImg Library is a small, open-source, and modern C++ toolkit for image processing


http://cimg.eu

Hay libpng, opencv,…

//RGB thôi, A là png or bitmap rồi

HelloWorld viết 14:20 ngày 01/10/2018

Nếu mình không được dùng hàm hay thư viện có sẵn thì hiển thị ảnh phải làm ntn nhỉ.đọc thì m làm rồi. Nhưng hiển thị mà tự code chay thì m chưa biết làm ntn

Dark.Hades viết 14:21 ngày 01/10/2018

Tự viết tay hàm đọc điểm ảnh rất phê đấy bạn, tốt nhất là dùng 1 header-likes library rồi đọc, sau đó vẽ lên winapi form là đơn giản nhất.

// Bản thân mình cũng chỉ dùng lib cho tiện, vì ảnh rất nhiều loại, xử lí để ra được matrix không đơn giản.

HelloWorld viết 14:09 ngày 01/10/2018

Mình đang học môn xử lý ảnh. Thầy k cho dùng hàm có sẵn hay thư viện có sẵn. Tự code tay. Vì k phải làm sản phẩm chủ yếu là tự code để hiểu rõ bản chất ảnh đc lưu trữ, nén, đọc ghi ntn. Mình làm về png. Còn giải mã dữ liệu ảnh với hiển thị . mình k biết dùng cái gì để có tạo 1 cửa sổ hiện thị ảnh theo 1 kích thước m.n và có thể set màu cho từng pixel

Dark.Hades viết 14:18 ngày 01/10/2018

Vẽ trực tiếp lên Console của windows cũng được, nhưng phải set 256 màu cho nó, nếu trên linux thì đơn giản hơn, nó hỗ trợ sẵn term-265 color rồi, ngoài ra vẽ trên Win32 API cũng được, nó cũng chỉ xoay quanh quản lí HWND thôi, thực tế hơn:
(Nên tìm thêm tài liệu về set pixel color on win32 api)

docs.microsoft.com

SetPixel function

The SetPixel function sets the pixel at the specified coordinates to the specified color.


stackoverflow.com
user3346223

How to set the colors of a Window's pixels with Windows API (C++) once created?

c++, winapi
asked by user3346223 on 05:42PM - 02 Apr 14

HelloWorld viết 14:07 ngày 01/10/2018

bạn có thể cho mình xin tài liệu hay link về cách vẽ trực tiếp lên console không , tks bạn

Dark.Hades viết 14:13 ngày 01/10/2018

Google nhiều mà, tìm đúng từ khóa là ra. Lúc trước mình dùng Vim trên console nó không trực tiếp hỗ trợ 256 màu, nó chỉ có 16 màu thì phải. Codeblock thì hiện 256 màu, tuy nhiên nó là linux type nên không nói.

stackoverflow.com
hCon

C++ Pixels In Console Window

c++, console, codeblocks, pixels
asked by hCon on 10:07PM - 11 Sep 12
viết 14:11 ngày 01/10/2018

xài SDL2 hay SFML ấy hiển thị cho dễ

sf::Image image;
image.create(600, 400);
...
image.SetPixel(x, y, sf::Color(r, g, b));

...
window.clear();
drawImage(window, image);
window.display();


void drawImage(sf::RenderTarget& target, const sf::Image& image)
{
    sf::Texture tex;
    tex.loadFromImage(image);
    target.draw(sf::Sprite(tex));
}
HelloWorld viết 14:19 ngày 01/10/2018

console của visual studio bao nhiều màu nhỉ , tks bạn

HelloWorld viết 14:20 ngày 01/10/2018

nhưng mà thầy bảo không được dùng thư viện, hàm có sẵn (ở mức có sẵn hoàn toàn ấy, chứ k tính mấy cái hàm có sẵn cơ bản) thì có được dùng như trên không bạn(anh) nhẩy, thầy bắt tự đọc và hiển thị bằng code thủ công T.T

viết 14:22 ngày 01/10/2018

thì hỏi ông thầy code này có được ko. SFML chỉ vẽ cái image lên màn hình, còn set từng pixel của image đấy là mình tự làm. Còn bảo tự vẽ lên màn hình thì quá cha rồi, mời ông thầy làm luôn, có cần viết OS mới luôn ko vì xài Windows/Linux là cheat rồi.

Bài liên quan
0