Khi tôi áp dụng bộ lọc mờ cho hình ảnh svg, nó làm mờ các cạnh để chúng trở nên trong suốt (xem mẫu bên trái). Những gì tôi muốn là làm mờ nó mà không có tạo tác như vậy (xem mẫu bên phải). Tôi đã giải quyết vấn đề này bằng cách hack: chỉ cần sao chép cùng một hình ảnh được lật và đặt chúng cho 4 mặt.Hiện vật cạnh mờ của bộ lọc mờ SVG
Có cách nào tốt hơn không?
Lưu ý rằng tôi không thể chỉ làm cho hình ảnh lớn hơn trên 5-10%; kích thước phải giống như hình ảnh gốc.
Đây là svg của tôi:
...
<filter id="blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="4"></feGaussianBlur>
</filter>
...
<g filter="url(#blur)">
<image xlink:href="cathedral.jpg"></image>
</g>
Dường như nó không hoạt động. Xem tại đây: http://jsbin.com/vugojiju/1/edit Tôi đặt cùng một hình ảnh ở mặt sau để minh họa sự cố - các cạnh trong suốt của hình ảnh bị mờ. –
Bạn phải đóng thẻ feGaussianBlur trước khi thêm componentTransfer. Trong mã của tôi, tôi sử dụng một tự đóng trong phiên bản của bạn, bạn gửi kèm theo componenttransfer trong một tập hợp các thẻ feGaussian mở và đóng. Vì vậy, nó bỏ qua các componentTransfer –
Có một lỗi đánh máy: trên dòng đầu tiên, x = "0% nên có một dấu ngoặc kép đóng. Khác hơn thế, tuyệt vời hack! – montecruiseto