Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2017, 14:12
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 32

<canvas> как задать картинке прозрачность
надо сделать картинку немного прозрачной
<script>
	var 
		example = document.getElementById("example")
		ctx = example.getContext('2d')
	
		pic = new Image()
		pic.src = 'image.png' 
		
	pic.onload = function() {
		ctx.drawImage(pic, 0, 0)
	}
</script>

код загружает картинку и по завершении выводит на экран
как можно задать прозрачность картинки?
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2017, 14:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от provigator
canvas> как задать картинке прозрачность
Вот статейка...
https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx
Но картинка должна быть в этом же домене.

Последний раз редактировалось ksa, 20.01.2017 в 14:22.
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2017, 15:17
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 32

загружаемая картинка в том же домене
по примеру этой статьи получился такой код:
<script>
	var 
		example = document.getElementById("example")
		ctx = example.getContext('2d')
	
		pic = new Image()
		pic.src = 'image.png' 

	pic.onload = function() {

		ctx.drawImage(pic, 0, 0)		
		pic = ctx.getImageData(0, 0, 103, 46);
		for (var i = 0; i < 103*46*4; i += 4) {
			pic.data[i + 3] = 128;
		}

	}
</script>

не задается прозрачность
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2017, 15:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

provigator,
где вставка нового pic ?
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2017, 15:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от provigator
по примеру этой статьи получился такой код
В первых шагах нужно использовать оригинальный код примера. Только когда он заработает, продолжать его модификацию.
И ни как иначе.
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2017, 16:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Rise,
разве для картинок это сработает?
Ответить с цитированием
  #7 (permalink)  
Старый 20.01.2017, 16:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Rise,
а можно код?
Ответить с цитированием
  #8 (permalink)  
Старый 20.01.2017, 16:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от provigator
не задается прозрачность
Я попробовал у себя на сервере - пример рабочий.
<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      //Global variables
      var picWidth = 200; // width of the canvas
      var picHeight = 200; // height of the canvas
      var picLength = picWidth * picHeight; // number of chunks
      var myImage = new Image(); // Create a new blank image.
      // Load the image and display it.
      function displayImage() {
        // Get the canvas element.
        canvas = document.getElementById("myCanvas");
        // Make sure you got it.
        if (canvas.getContext) {
          // Specify 2d canvas type.
          ctx = canvas.getContext("2d");
          // When the image is loaded, draw it.
          myImage.onload = function() {
            // Load the image into the context.
            ctx.drawImage(myImage, 0, 0);
            // Get and modify the image data.
            getColorData();
            // Put the modified image back on the canvas.
            putColorData();
          }
          // Define the source of the image.
          // This file must be on your machine in the same folder as this web page.
          myImage.src = "img/test.png";
        }
      }
      function getColorData() {
        myImage = ctx.getImageData(0, 0, 200, 200);
        // Loop through data.
        for (var i = 0; i < picLength * 4; i += 4) {
          // First bytes are red bytes.        
          // Second bytes are green bytes.
          // Third bytes are blue bytes.
          // Fourth bytes are alpha bytes
          // Test of alpha channel at 50%.
          myImage.data[i + 3] = 128;
        }
      }
      function putColorData() {
        ctx.putImageData(myImage, 0, 0);
      }
      function noPhoto() {
        alert("Please put a .png file in this folder and name it kestral.png.");
        }
    </script>
  </head>
  <body onload="displayImage()">
    <h1>
      American Kestral
    </h1>
    <p>
      The original image is on the left and the modified image is on the right.
    </p>
    <img id="myPhoto" src="img/test.png" onerror="noPhoto()">
    <canvas id="myCanvas" width="200" height="200">
    </canvas>
    <p>
      Public domain image courtesy of U.S. Fish and Wildlife Service.
    </p>
  </body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2017, 16:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

provigator,
пост №3 строка 16
ctx.putImageData(pic, 0, 0)
Ответить с цитированием
  #10 (permalink)  
Старый 20.01.2017, 16:32
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 32

да, работает globalAlpha с картинками:
<script>
	var 
		example = document.getElementById("example")
		ctx = example.getContext('2d')
	
		pic = new Image()
		pic.src = 'image.png' 
	pic.onload = function() {
		ctx.globalAlpha=0.5
		ctx.drawImage(pic, 0, 0)
	}
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить прозрачность картинке при клике на li в IE??? Андрей Лебедев Internet Explorer 4 10.02.2013 06:04
как в datepicker задать диапазон дат во время выполнения скрипта. Yurik jQuery 0 23.02.2011 12:19
не понимаю как задать правильный контекст loz Dojo toolkit 2 17.02.2011 18:36
Как задать default value в enctype="multipart/form-dat" Pumych Общие вопросы Javascript 1 15.02.2011 22:07
Как правильно задать ID в создаваемом элементе ? Indiana Events/DOM/Window 15 31.10.2010 16:15