Показать сообщение отдельно
  #1  
Старый 11.01.2022, 03:17
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как на delphi заменить цвета пикселей картинки?

Здравствуйте, предположим у меня есть два компонента Image1 и Image2. В первом загружается картинка во втором она перерисовывается но заменяются цвета пикселей. Как это реализовать на Delphi 7(сейчас только эта версия у меня установлена). Какой результат я пытаюсь сделать на delphi 7 я сделала на html 5 Вот:
https://codepen.io/Smith37/pen/KKXGmgw

Так же еще код html5.
Код HTML:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Замена цвета картинки</title> <script> var canvas, ctx, img; window.onload = function() { const img = new Image() img.src = 'main.jpg'; img.crossOrigin = "Anonymous"; img.onload = function() { canvas = document.getElementById("drawingCanvas"); ctx = canvas.getContext("2d"); const w = img.naturalWidth const h = img.naturalHeight const x1 = 0; const y1 = 0; const x2 = 100; const y2 = 0; canvas.width = 200; canvas.height = 100; ctx.clearRect(0, 0, w, h) ctx.drawImage(img, x2, y2, w, h) ctx.drawImage(img, x1, y1, w, h) const imageData = ctx.getImageData(x2, y2, w, h) const view = new DataView(imageData.data.buffer); for (let i = 0; i < h; i++) { let str = "" for (let j = 0; j < w; j++) { const k = i * 4 * w + 4 * j if (view.getUint32(k) > 0x777777ff) { view.setUint32(k, 0x00ff00ff) str += "_" } else { view.setUint32(k, 0xff0000ff); str += "e" } } } view.setUint32(66, 0xFF000000, true); ctx.putImageData(imageData, x2, y2); } } </script> </head> <body> <canvas id="drawingCanvas" style="background:#444444" width="400px" height="300px"></canvas><br> </body> </html>

И скриншот замены пикселей.
Ответить с цитированием