Làm thế nào để tạo hiệu ứng làm mờ / mờ kính không phá hủy và có thể tái sử dụng?


25

Làm cách nào tôi có thể tạo một nền mờ chung có thể được sử dụng trên nhiều hình ảnh tương tự như ví dụ dưới đây?

Tôi cần một png kính mờ màu trắng mà tôi có thể đặt để sử dụng để phủ lên các hình ảnh thông thường để cung cấp cho chúng một cái nhìn bằng kính mờ (giống như bạn gần như có thể tìm ra những gì đằng sau nó; có thể là một số màu sắc).

Ví dụ:

Ví dụ hình ảnh mờ
Click vào hình để xem độ phân giải đầy đủ

nhập mô tả hình ảnh ở đây

Có thể một nền trắng với kết cấu (kết cấu hạt) sau đó Gaussian làm mờ nó và sau đó sử dụng nó như một lớp trên tất cả các hình ảnh của tôi.

Tôi biết liên kết tôi đã đăng ở trên có lẽ chỉ là một hình ảnh mờ, nhưng tôi cần một lớp có thể được sử dụng lại trong một dự án iOS. Bằng cách này, nó có thể được sử dụng một lớp xem trên các phần của hình ảnh và làm cho hình ảnh bên dưới trông mờ đi. Có lẽ tôi không nên sử dụng mờ như thuật ngữ ở đây. Tôi đang tìm kiếm kính mờ.

Những gì tôi đang cố gắng thực hiện với hình ảnh này là nhập nó vào ứng dụng iOS của tôi, sử dụng nó làm nền xem. Sau đó, khi chế độ xem này vượt qua các chế độ xem khác (chế độ xem bản đồ, ảnh, v.v ...), tất cả chúng đều bị mờ. Tôi đang cố gắng tạo hiệu ứng của hình ảnh này từ iOS 7. Và không, tôi không muốn sử dụng các tính năng thiết kế iOS 7 mới, bởi vì hầu hết người dùng của tôi vẫn ở trên iOS 5. Và không, tôi không muốn buộc họ nâng cấp.


6
"Mờ" không phải là một thứ chung chung mà bạn có thể lưu trữ trong PNG, nó là hiệu ứng được áp dụng cho hình ảnh và hoàn toàn phụ thuộc vào nội dung của hình ảnh. Tuy nhiên, bạn có thể lưu trữ một actionứng dụng hiệu ứng làm mờ. Nếu bạn làm những gì được nêu trong các hướng dẫn và thảo luận về Hỏi & Đáp được liên kết, trong khi ghi lại một hành động , bạn có thể có những gì bạn cần. Nhiều khả năng người ta sẽ tự tạo mặt nạ lựa chọn và sau đó tự động hóa phần còn lại của quá trình bằng cách sử dụng một hành động.
horatio

Việc chỉnh sửa không thực sự thay đổi câu hỏi. Câu trả lời là, như Horatio đề cập: Không, bạn không thể có một vệt mờ trong một lớp riêng biệt. Hình ảnh iOS chỉ là một vệt mờ lớn hơn.
Yisela

1
Điều này là đầy đủ về câu hỏi mã hóa nếu bạn hỏi tôi. Gần nhất bạn sẽ có được một cái gì đó giống như ví dụ thứ hai của bạn bằng cách sử dụng hình ảnh là: jsfiddle.net/lollero/DE4qn ... tất nhiên điều này là siêu tĩnh và yêu cầu bạn phải có 2 phiên bản của cùng một hình ảnh (tất nhiên điều này điều tương tự có thể được thực hiện với phương thức lọc css3).
Joonas

Câu trả lời:


11

Bạn không thể chỉ che một hình ảnh 'mờ' làm mờ hình ảnh ngẫu nhiên đằng sau nó. Hiệu ứng làm mờ cần lấy mẫu hình ảnh phía sau để hoán vị / trải các pixel, vì vậy nó cần được áp dụng ở đó.

Tuy nhiên, bạn có thể tạo ra một kết cấu cát / hạt và sử dụng nó như là một lớp nhân để có được kết cấu hạt.

Cập nhật - Như Derek gợi ý trong một câu trả lời khác, bạn có thể tạo ra một vệt mờ không phá hủy bằng cách chuyển đổi lớp hình ảnh của bạn thành một đối tượng thông minh, sau đó áp dụng độ mờ cho điều đó. Sau đó, bạn có thể nhập đối tượng thông minh và chỉnh sửa độc lập với mờ.


Làm thế nào tôi có thể làm kết cấu hạt cát? Tôi đang nghĩ đến những điều này cùng nhau sẽ làm việc. Hai cái giống hệt nhau, nhưng một là một pixel lên và một pixel ở bên phải từ cái đầu tiên và điều đó sẽ làm cho nó nổi hạt (xếp lớp nếu bạn muốn).
jgervin

1
Tạo một lớp đầy màu trắng và bộ lọc> tiếng ồn> thêm tiếng ồn để thêm hạt. Từ đó có thể làm mờ nó một chút để làm mềm nó lên một chút, đặt lớp này thành bội số và giảm độ mờ xuống khoảng 10%.
John

9

Nhìn vào hình ảnh thứ hai bạn đã cung cấp, một cái gì đó như thế này là không thể với lớp phủ PNG. Điều đó hoàn toàn được thực hiện theo chương trình theo một cách nào đó chứ không phải với lớp phủ PNG. Tôi đã thử một số đề xuất khác được đăng ở đây, không có gợi ý nào được đưa ra (nhưng có lẽ bạn sẽ gặp may mắn hơn)


Điều này thực sự nằm ngoài yêu cầu của bạn, nhưng điều này phải được thực hiện với lớp phủ không? Tôi không chắc chắn bạn sẽ nhận được hiệu quả mà bạn hy vọng đạt được bằng cách sử dụng phương pháp đó. Nếu bạn có khả năng, tôi sẽ làm điều này bằng lập trình thay thế.

Tôi không có cái nhìn sâu sắc về cách ứng dụng của bạn được thiết lập, nhưng một cách bạn có thể làm điều này là với bộ lọc CSS3:

.blurred {
  filter: blur(2px);
  -webkit-filter: blur(2px);
}

[lưu ý cho rõ ràng: quá trình này là hình ảnh nền trước của sản phẩm có mặt nạ alpha và hình nền được làm mờ bằng bộ lọc CSS]

Trước

Sản phẩm của chúng tôi!

Sau

Sản phẩm của chúng tôi!
Tín dụng hình ảnh: Philip Leara

Bạn có thể xem bản demo trực tiếp về điều này tại đây

Trong tương lai, điều này có thể được thực hiện dễ dàng hơn nhiều bằng cách sử dụng backdrop-filterkiểu CSS được đề xuất , nhưng hỗ trợ hiện tại cho việc này là không tồn tại .


2
Nếu đây là một tùy chọn, đó là một lộ trình tốt để thực hiện vì người dùng hoặc nhà phát triển có thể thay đổi kiểu dáng theo ý muốn.
horatio

1
Một điều cần lưu ý là điều này sẽ hoạt động trên các thiết bị iOS và có thể là hầu hết các thiết bị di động, nhưng không phải là một cách tiếp cận khả thi cho thiết kế web không dành cho thiết bị di động vì sự hỗ trợ của nó rất hạn chế. caniuse.com/css-filters
Eric

Chúng tôi đều là người bản địa. Và lập trình nó không phải là một tùy chọn vì nó có thể có 3 chế độ hiển thị hoặc 2 hoặc 1, nhưng chế độ xem trên cùng cần cho phép tất cả các chế độ xem bên dưới, bất kể có bao nhiêu, hiển thị ném một chút.
jgervin

@jgervin Tôi không nghĩ những gì bạn đang cố gắng đạt được chỉ với lớp phủ PNG, nhưng tôi rất thích ai đó chứng minh tôi sai vì tôi học được điều gì đó mới! Thay vào đó tôi sẽ tập trung vào cách bạn có thể thực hiện theo cách khác, có lẽ Stack Overflow có thể đưa bạn đi đúng hướng.
JohnB

@Eric nếu là ứng dụng iOS, nền tảng web không thành vấn đề.
Ctrl Alt Design

6

Một tùy chọn khác là tạo một đối tượng thông minh, và áp dụng hiệu ứng làm mờ và hiệu ứng của bạn cho đối tượng thông minh. Làm theo cách này, vẫn sẽ cho phép bạn mở đối tượng thông minh và thay đổi những gì bên trong nó.

---Chỉnh sửa---

Vì tôi đã đăng câu trả lời trên của mình, câu hỏi đã được chỉnh sửa và thay đổi một chút. Yêu cầu bây giờ là đạt được độ mờ trong ứng dụng iOS, tôi khuyên bạn nên làm mờ bằng mã, theo cách đó nó có thể ảnh hưởng đến bất kỳ hình ảnh nào bạn muốn.

private static Bitmap Blur(Bitmap image, Int32 blurSize)
{
    return Blur(image, new Rectangle(0, 0, image.Width, image.Height), blurSize);
}

Thông tin thêm về điều này tại đây: http://notes.ericwillis.com/2009/10/blur-an-image-with-csharp/



3

Nếu điều này vẫn cần thiết, tôi đã cố gắng đạt được hiệu quả tương tự và tôi không thể.

Tôi đã làm điều đó với một plugin có tên html2canvas và stackBlur, mà tôi đã tìm thấy nó ở đây: http://jsfiddle.net/WtQjY/201/ .

Tôi không phải là tác giả của các plugin. Và đây chỉ là một đoạn mã. Tôi đã thay đổi nó để đơn giản hơn và nhanh hơn:

.mơ hồ{
    -webkit-filter: Blur (7px);
-moz-bộ lọc: mờ (7px);
-o-lọc: mờ (7px);
-ms-filter: Blur (7px);
bộ lọc: làm mờ (7px);

}

/////////////////////////////////////
// bao gồm thư viện jquery
// jQuery
$ (tài liệu). yet ({
$ ('# YourButton'). Nhấp ({

$ ('# YourContainer'). ToggleClass ('mờ');

});
});

Nó vẫn rất chậm nhưng nó hoạt động.


2

Vì vậy, tôi đã tạo phiên bản riêng của kịch bản này mà tôi nghĩ rằng tôi muốn chia sẻ. Tôi đã tạo hai hình nền và gắn một trong số chúng vào div con và sau đó là một phiên bản rõ nét và rõ ràng cho nền chính. Chỉ cần đặt nền của cả hai đối tượng thành cố định và căn giữa và chúng sẽ khớp với nhau.

Đây là bản demo: http://www.palandforsale.us/frosted-lass/


Trang demo dường như ngừng hoạt động. Có thể tìm thấy bản demo ở một nơi khác, hoặc có thể tạo ra một JSFiddle của nó không?
Praxis Ashelin

2

Nếu tôi hiểu chính xác câu hỏi của bạn, tôi không nghĩ bạn có thể. 'Blur' là một hoạt động được thực hiện trong một phần mềm, mỗi phần theo cách riêng của chúng. Làm thế nào phác thảo áp dụng mờ có thể là một cách khác với cách Photoshop hoặc Google Chrome làm.

Do đó, bạn không thể xuất hình ảnh với 'mờ'. Blur luôn tương tác với những gì đằng sau nó và nó không thể được xuất từ ​​ứng dụng bạn đang tạo.


Thanx cho câu trả lời, Điều đó có ý nghĩa. Vì vậy, nếu tôi muốn sử dụng nó trong ứng dụng, tôi phải tạo nó theo chương trình.
Dilip

Có, cho mỗi ứng dụng riêng biệt. CSS có các tùy chọn mờ trong những ngày này, ví dụ.
Vincent

0
  1. Tạo một lớp màu xám 50% trên lớp bạn muốn tạo lớp mờ và mờ.
  2. Làm đầy nó với tiếng ồn, số lượng tùy thuộc vào nhu cầu của bạn
  3. Làm mờ nó với Gaussian Blur khi bạn cần.
  4. Trên lớp này, bạn có thể thêm một lớp đường cong và điều chỉnh các giá trị trắng và đen bằng cách kéo xuống đầu trắng hoặc đẩy đầu đen của lớp đường cong lên.

Hai lớp này sẽ cho hiệu ứng mờ và mờ. Thứ tự của hai lớp này có thể được thay đổi.


1
Chào bạn Nếu bạn đã thử điều này, bạn có thể thêm một hình ảnh của kết quả? Tôi thực sự không thấy nó sẽ tạo ra hiệu ứng mờ như thế nào mà OP đang tìm kiếm mà không ảnh hưởng đến màu sắc hình ảnh ...
Yisela

Điều này sẽ chỉ cung cấp cho bạn một đám mây mờ trên hình ảnh sắc nét ban đầu.
DA01

Đã không làm việc. Nhưng có lẽ tôi đã làm sai.
jgervin

0

Tạo một hành động sao chép hình ảnh và áp dụng độ mờ Gaussian. Đây là cách PS duy nhất để làm điều này tôi tin.

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.