Có thể giả mạo mờ qua hình ảnh?


9

Tôi đang sử dụng libGDX cho một trò chơi Android; theo như tôi có thể nói, nó không có API để làm mờ.

Đọc trên Wikipedia, có vẻ như mờ được hình thành bằng cách đặt từng pixel giá trị RGB thành trung bình của tất cả các giá trị liền kề. Điều này dường như không dễ dàng trong libGDX - cài đặt dữ liệu pixel.

Vì vậy, câu hỏi của tôi rất đơn giản:

Có thể giả mạo (một phong nha) mờ chỉ bằng hình ảnh?

Tôi có khả năng có thể chồng nhiều hình ảnh (về số lượng, độ trong suốt, loại); Nhưng tôi có thể tạo ra một vệt mờ thuyết phục như thế này không?

Tôi muốn nói "không", nhưng có lẽ ai đó đã đạt được điều tương tự. Để rõ ràng, tôi muốn có một bộ hơn 1 hình ảnh chung mà tôi có thể hiển thị trên đầu BẤT K image hình ảnh nào để tạo hiệu ứng giống như mờ.


câu hỏi hay! Bản thân tôi cũng nghĩ như vậy!
Daniel nói Phục hồi Monica

@DantheMan trên nền tảng nào?
tro999

Unity3d hoặc ngôn ngữ tô bóng CG.
Daniel nói Phục hồi Monica

Bạn đề nghị chồng hình ảnh trong suốt lên nhau. Nếu bạn bù một chút cho chúng, bạn sẽ lấy trung bình các pixel, đạt được độ mờ
Jeff

1
@ as999, nếu bạn đang tìm kiếm một "hình ảnh ma thuật" có thể được phủ lên trên mọi thứ để làm cho chúng xuất hiện mờ, điều đó không tồn tại. Alpha-trộn (lớp phủ) không phải là điều tương tự như làm mờ, xin lỗi.
Nathan Reed

Câu trả lời:


7

Nếu bạn có thể trộn lẫn các hình ảnh và nhân chúng với một hằng số trong khi làm như vậy, thì bạn có thể làm mờ. Thay vì lấy trung bình các pixel trong một vùng lân cận, bạn trung bình một vài bản sao của hình ảnh bị dịch chuyển bởi một số lượng nhỏ pixel từ nhau. Hay nói chung hơn, bạn có thể làm mờ Gaussian hoặc bất kỳ loại mờ nào, bằng cách kiểm soát các trọng số - nghĩa là nhân mỗi bản sao của hình ảnh bị dịch chuyển với một hằng số khi nó được thêm vào phần còn lại.

Về mặt thuật toán, nó sẽ trông giống như thế này:

clear output_image to 0
foreach offset, weight in filter_kernel:
    output_image += input_image * weight, shifted by offset

Bạn sẽ sử dụng cùng một độ lệch và trọng lượng như trong cách làm mờ tiêu chuẩn. Chẳng hạn, có rất nhiều bài viết trên Web về cách tạo ra các trọng số cho độ mờ Gaussian.


+1 câu trả lời hay. Trong trường hợp của tôi, tôi không có khả năng phụ gia.
tro999

0

Làm mờ có thể là một hoạt động đắt tiền, có lẽ một cách tiếp cận khác có thể hoạt động, ví dụ:

  1. Lưu trữ nhiều bản sao của hình ảnh bị mờ theo nhiều hướng khác nhau (ví dụ: bội số 45 độ), sau đó hiển thị hình ảnh phù hợp gần nhất khi chạy. Điều này sẽ cung cấp hiệu suất cao nhất, với chi phí sử dụng bộ nhớ.
  2. Thu nhỏ hình ảnh xuống và sau đó trở lại kích thước đầy đủ với khử răng cưa / làm mịn. Thường thì điều này có thể được thực hiện với phần cứng đồ họa với rất ít tác động hiệu năng.

Nó sẽ không hoạt động, vì nó phải năng động, tức là tôi không thể biết chính xác thiết lập màn hình trước thời hạn.
tro999
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.