Giới thiệu
Các cạnh sắc nét, thật ra, chỉ đơn giản là nguy hiểm, do đó, đưa ra một PNG làm đầu vào, làm mờ hình ảnh bằng phương pháp được mô tả dưới đây và làm cùn các cạnh sắc nhọn đáng nguyền rủa đó.
phương pháp
Để lấy giá trị RGB của từng pixel, hãy sử dụng ba phương trình sau:
Trong đó là tổng các giá trị màu đỏ của mỗi pixel liền kề bình phương. Giá trị của là số pixel liền kề (ví dụ: pixel góc sẽ có giá trị là 3, trong khi pixel quanh tâm ảnh sẽ có giá trị là 8).
Một pixel liền kề là một pixel cách pixel gốc 1 pixel theo mọi hướng (trái, phải, lên, xuống và trên tất cả các đường chéo).
Ví dụ: trong hình ảnh 3 x 1 sau đây:
Giá trị RGB mờ của pixel giữa sẽ là:
trong đó bất kỳ đầu ra thập phân nào được làm tròn đến đơn vị gần nhất. Bạn không nên đơn giản sàn kết quả.
Do đó, pixel giữa sẽ là màu (0, 221, 221) hoặc:
Kết quả trong hình ảnh:
Bạn nên lặp lại quá trình này cho mọi pixel trong ảnh. (Lưu ý rằng bạn thực hiện việc này với các pixel gốc chứ không phải các pixel đã sửa đổi. Về cơ bản, bạn không nên ghi đè lên ảnh gốc và nên tách biệt hoàn toàn với ảnh mới, mờ ).
Nếu bạn tính toán bất kỳ giá trị nào lớn hơn 255, giả sử rằng giá trị của nó là 255 (Tức là, giá trị 374 sẽ được đặt thành 255).
Đầu ra kết quả phải là một hình ảnh PNG riêng biệt (bạn có thể đặt tên này là bất cứ điều gì bạn muốn).
Ví dụ
Siêu Mario
Nguyên:
Bị mờ:
Bàn cờ
Nguyên:
Bị mờ:
Khủng hoảng
Nguyên
Bị mờ
Không còn giòn nữa
Mỹ gothic
Nguyên:
Bị mờ:
Để xem mờ trên hình ảnh lớn hơn, tốt nhất là chạy lại chương trình trên hình ảnh mờ:
Thử thách
Mã ngắn nhất để làm mờ hình ảnh PNG nhất định sẽ thắng.
Bạn có thể sử dụng các thư viện xử lý hình ảnh (như PIL) nhưng bạn không được sử dụng các chức năng làm mờ tích hợp (Mathicala, tôi đang nhìn bạn).
Ghi chú
Như @orlp nói dưới đây:
Đối với hồ sơ, (theo hiểu biết của tôi) đây không phải là một phương pháp làm mờ tiêu chuẩn. Thách thức này không phải là một tài nguyên giáo dục.
n
nên xuất hiện trong mẫu số.