Vì vậy, tôi đã thực hiện chương trình này cho một trò chơi và cần trợ giúp để làm cho nó tự động hơn một chút.Thao tác hình ảnh C++
Chương trình sẽ chụp ảnh và sau đó hiển thị nó. Tôi đang làm điều này trên kết cấu trong OpenGL. Khi tôi chụp ảnh màn hình của trò chơi, nó thường là khoảng 700x400. Tôi nhập chiều cao và chiều rộng vào chương trình của tôi, thay đổi kích thước hình ảnh thành 1024x1024 (làm cho nó trở thành một kết cấu POT cho khả năng tương thích tốt hơn) bằng cách thêm không gian trống (ảnh gốc ở góc trên bên trái và đi tới (700,400) và phần còn lại chỉ là trống, không ai biết thuật ngữ này?) và sau đó tải nó vào chương trình của tôi và điều chỉnh các góc để chỉ một phần từ (0,0) đến (700,400) được hiển thị.
Đó là cách tôi xử lý hiển thị hình ảnh. Bây giờ, tôi muốn thực hiện điều này tự động. Vì vậy, tôi muốn có một hình ảnh 700x400, vượt qua nó để chương trình mà sẽ nhận được chiều rộng và chiều cao của hình ảnh (700x400), thay đổi kích thước nó để 1024x1024 bằng cách thêm không gian trống và sau đó tải nó.
Vì vậy, có ai biết thư viện C++ có khả năng thực hiện việc này không? Tôi vẫn sẽ chụp ảnh màn hình theo cách thủ công.
Tôi đang sử dụng Thư viện hình ảnh OpenGL đơn giản (SOIL) để tải ảnh (.bmp) và chuyển đổi nó thành kết cấu.
Cảm ơn!
"Có thể tự động rescale hình ảnh sang kích cỡ lớn nhất của hai kích thước tiếp theo" - Tôi thực sự đã bỏ lỡ từ "tự động". : D Tôi sẽ thử những gì bạn nói. Cảm ơn! – Tuntuni
Tôi đã cố gắng tải nó mà không thay đổi kích thước nhưng nó chỉ trở nên kỳ lạ. Tôi khá chắc chắn các góc của tôi đang ở vị trí của họ. Hình ảnh cũng chuyển sang màu xám và khi tôi mở rộng nó, nó sẽ thu được một số màu sắc. Bạn có thể cho tôi bất kỳ ngoại lệ nào trên SOIL_load_image và glDrawPixels hoặc liên kết không? Cảm ơn. – Tuntuni
Có thể thử 'SOIL_FLAG_POWER_OF_TWO' hoặc' SOIL_FLAG_TEXTURE_RECTANGLE'. –