Полупрозрачные края картинок (можно ли сделать?)
Здравствуйте:) .
Очень просто можно сделать в фотошопе картинку с полупрозрачными краями, сохранить в PNG и всё хорошо. Только вот файл такой с альфаканалом весить будет ну очень много (как следствие того- сайт потом долго грузится). Вопрос, как зделать средствами JS эффект полупрозрачных краёв картинки(jpg,png)? Можно ли? Подскажите пожалуйтса. Из такого ![]() сделать вот так ![]() |
Ты с какой мухосрани выходишь в сеть, чтобы пинг в даже мегабайт грузился долго?
Не надо тебе этого хотеть. Можно сделать на канвасе или в SVG. Но не надо. Просто поменяй провайдера. |
|
Цитата:
|
Fesali,
http://www.netzgesta.de/edge/ |
|
рони , спасибо, похоже это именно оно! Пойду юзать, учится.
|
Или как-то так
<style> .container { position:relative; display: inline-block; } .mask { position:absolute; top: 0px; left: 0px; width:100%; height:100%; background-image: -webkit-radial-gradient(50% 50%, ellipse closest-side, rgba(255,255,255,0) 40%, rgba(255,255,255,1)); background-image: -moz-radial-gradient(50% 50%, ellipse closest-side, rgba(255,255,255,0) 40%, rgba(255,255,255,1)); background-image: -o-radial-gradient(50% 50%, ellipse closest-side, rgba(255,255,255,0) 40%, rgba(255,255,255,1)); background-image: -ms-radial-gradient(50% 50%, ellipse closest-side, rgba(255,255,255,0) 40%, rgba(255,255,255,1)); z-index: 100; } </style> <div class="container"> <image src= "http://www.imageup.ru/img133/2542020/preload.png"/> <div class="mask"> </div> </div> |
Dilettante_Pro Это Вы наложили градиент который уходит в белый цвет. Нужно чтоб картинка уходила в прозрачность, чтоб края картинки были прозрачными!
|
рони ваш пример что-то не работает.
|
|
Цитата:
|
что то не получается завести этот канвас http://codepen.io/anon/pen/ALpvQK?editors=1100#0
|
Цитата:
Цитата:
Цитата:
|
В фаерфоксе работает, в опере ни в какую, хотя демо пример работает и в опере. Я понял что в скрипте нужно указать ссылку на изображение img.src = imagecanvas.toDataURL("red-panda.jpg") перепробовал, зараза в опере на работает
|
Fesali,
картинки и скрипт положите к себе на сервер |
Работает, но не нравится что сперва картинка появляется целиком, потом маска её обрезает, с опозданием. На сервер загрузил, все получилось.
Спасибо! буду разбиратся. |
Fesali,
так не показывайте пока не обработается -- гифку прелоада или с помощью css |
Цитата:
|
Цитата:
|
Цитата:
вот так <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .mask.hide{ opacity: 0; } .mask{ transition:opacity .8s; } </style> <script>(function(){ var mask = document.createElement('img'); mask.src = "centerblur.png"; var width = 0; var height = 0; window.addEventListener('load', function(ev){ var imagecanvas = document.createElement('canvas'); var imagecontext = imagecanvas.getContext('2d'); var images = document.querySelectorAll('.mask'); var all = images.length; while (all--) { var img = images[all]; width = img.offsetWidth; height = img.offsetHeight; imagecanvas.width = width; imagecanvas.height = height; imagecontext.drawImage(mask, 0, 0, width, height); imagecontext.globalCompositeOperation = 'source-atop'; imagecontext.drawImage(img, 0, 0); img.src = imagecanvas.toDataURL(); img.classList.remove('hide') } }, false); })();</script> </head> <body> <img src="preload.png" alt="" class="mask hide" > </body> </html> |
Вот кое-что в гугле нашел, поколдовал и вот что получилось (края только подровнять нужно). Что скажете?
<div class="content"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="620" height="412"> <mask id="mask1"> <ellipse cx="50%" cy="50%" rx="40%" ry="43%" fill="white" filter="url(#filter2)"></ellipse> </mask> <image xlink:href="http://www.imageup.ru/img133/2542020/preload.png" width="640" height="412" mask="url(#mask1)"></image> </svg> <svg width="0" height="0"> <defs> <filter id="filter2"> <feGaussianBlur stdDeviation="20"></feGaussianBlur> </filter> <linearGradient id="gradient" x1="0" y1="00%" x2="0" y2="100%"> <stop stop-color="black" offset="0"></stop> <stop stop-color="white" offset="1"></stop> </linearGradient> </defs> </svg> </div> |
Fesali,
вам решать :) |
Fesali, про svg уже было сказано и еще раз скажу, что ты херней занимаешься. Если бы у тебя там был свой инстаграм, это виньетирование оказалось бы в числе других фильтров, но у тебя какая-то анальная идея экономить на трафике.
|
Часовой пояс GMT +3, время: 10:03. |