June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1,38 +1,23 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html><head><script type="text/javascript">
|
||||
window.addEventListener(
|
||||
"load", function(){
|
||||
var img = new Image();
|
||||
// ***********************************************************
|
||||
// RUN LOCAL WEBSERVER TO LOAD LOCAL FILES: e.g. python -m http.server (python3)
|
||||
// ***********************************************************
|
||||
// img.src = prompt("enter image path","http://localhost:8000/test.jpg");
|
||||
img.src =
|
||||
'data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/\
|
||||
/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp\
|
||||
V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7';
|
||||
img.onload = function(){
|
||||
var can1 = new CustomCanvas("color", img.width, img.height);
|
||||
var can2 = new CustomCanvas("grayscale", img.width, img.height);
|
||||
can1.ctx.drawImage(img,0, 0, img.width, img.height);
|
||||
var imgData = can1.ctx.getImageData(0, 0, can1.w, can1.h);
|
||||
// desaturate
|
||||
var avg; var max; var rwgt=0.2126; var gwgt=0.7152; var bwgt=0.0722;
|
||||
for(var i = 0, max = can1.w*can1.h*4; i < max; i=i+4){
|
||||
avg = imgData.data[i]*rwgt + imgData.data[i+1]*gwgt + imgData.data[i+2]*bwgt;
|
||||
imgData.data[i ] = avg; // red
|
||||
imgData.data[i+1] = avg; // green
|
||||
imgData.data[i+2] = avg;} // blue, alpha=alpha
|
||||
can2.ctx.putImageData(imgData, 0, 0);
|
||||
}
|
||||
}, false);
|
||||
function toGray(img) {
|
||||
let cnv = document.getElementById("canvas");
|
||||
let ctx = cnv.getContext('2d');
|
||||
let imgW = img.width;
|
||||
let imgH = img.height;
|
||||
cnv.width = imgW;
|
||||
cnv.height = imgH;
|
||||
|
||||
function CustomCanvas(id, w, h, s) { /* Custom Canvas Object */
|
||||
var c = document.createElement("canvas");
|
||||
c.setAttribute('id', id); c.setAttribute('width', w);
|
||||
c.setAttribute('height', h); (s)?c.setAttribute('style', s):0;
|
||||
document.body.appendChild(c, document.body.firstChild);
|
||||
this.ctx = document.getElementById(id).getContext("2d");
|
||||
this.w = w; this.h = h;}
|
||||
</script></head><body></body></html>
|
||||
ctx.drawImage(img, 0, 0);
|
||||
let pixels = ctx.getImageData(0, 0, imgW, imgH);
|
||||
for (let y = 0; y < pixels.height; y ++) {
|
||||
for (let x = 0; x < pixels.width; x ++) {
|
||||
let i = (y * 4) * pixels.width + x * 4;
|
||||
let avg = (pixels.data[i] + pixels.data[i + 1] + pixels.data[i + 2]) / 3;
|
||||
|
||||
pixels.data[i] = avg;
|
||||
pixels.data[i + 1] = avg;
|
||||
pixels.data[i + 2] = avg;
|
||||
}
|
||||
}
|
||||
ctx.putImageData(pixels, 0, 0, 0, 0, pixels.width, pixels.height);
|
||||
return cnv.toDataURL();
|
||||
}
|
||||
|
|
|
|||
27
Task/Grayscale-image/Kotlin/grayscale-image.kotlin
Normal file
27
Task/Grayscale-image/Kotlin/grayscale-image.kotlin
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
// version 1.2.10
|
||||
|
||||
import java.io.File
|
||||
import java.awt.image.BufferedImage
|
||||
import javax.imageio.ImageIO
|
||||
|
||||
fun BufferedImage.toGrayScale() {
|
||||
for (x in 0 until width) {
|
||||
for (y in 0 until height) {
|
||||
var argb = getRGB(x, y)
|
||||
val alpha = (argb shr 24) and 0xFF
|
||||
val red = (argb shr 16) and 0xFF
|
||||
val green = (argb shr 8) and 0xFF
|
||||
val blue = argb and 0xFF
|
||||
val lumin = (0.2126 * red + 0.7152 * green + 0.0722 * blue).toInt()
|
||||
argb = (alpha shl 24) or (lumin shl 16) or (lumin shl 8) or lumin
|
||||
setRGB(x, y, argb)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val image = ImageIO.read(File("bbc.jpg")) // using BBC BASIC image
|
||||
image.toGrayScale()
|
||||
val grayFile = File("bbc_gray.jpg")
|
||||
ImageIO.write(image, "jpg", grayFile)
|
||||
}
|
||||
16
Task/Grayscale-image/Maple/grayscale-image.maple
Normal file
16
Task/Grayscale-image/Maple/grayscale-image.maple
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
with(ImageTools):
|
||||
#conversion forward
|
||||
dimensions:=[upperbound(img)];
|
||||
gray := Matrix(dimensions[1], dimensions[2]);
|
||||
for i from 1 to dimensions[1] do
|
||||
for j from 1 to dimensions[2] do
|
||||
gray[i,j] := 0.2126 * img[i,j,1] + 0.7152*img[i,j,2] + 0.0722*img[i,j,3]:
|
||||
end do:
|
||||
end do:
|
||||
#display the result
|
||||
Embed(Create(gray)):
|
||||
#conversion backward
|
||||
x:=Create(gray);
|
||||
ToRGB(x);
|
||||
#display the result
|
||||
Embed(x);
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/*REXX program converts a RGB (red─green─blue) image to a grayscale image. */
|
||||
/*REXX program converts a RGB (red─green─blue) image into a grayscale/greyscale image. */
|
||||
blue= '00 00 ff'x /*define the blue color (hexadecimal).*/
|
||||
@.= blue /*set the entire image to blue color.*/
|
||||
width= 60 /* width of the image (in pixels). */
|
||||
|
|
@ -9,7 +9,8 @@ height= 100 /*height " " " "
|
|||
r= left(@.col.row, 1) ; r=c2d(r) /*extract the component red & convert.*/
|
||||
g=substr(@.col.row, 2, 1) ; g=c2d(g) /* " " " green " " */
|
||||
b= right(@.col.row, 1) ; b=c2d(b) /* " " " blue " " */
|
||||
@.col.row=d2c((.2126*r+.7152*g +.0722*b)%1) /*convert RGB number ───► grayscale. */
|
||||
end /*row*/ /* [↑] D2C convert decimal ───> char*/
|
||||
_= d2c( (.2126*r + .7152*g + .0722*b) % 1) /*convert RGB number ───► grayscale. */
|
||||
@.col.row=copies(_, 3) /*redefine old RGB ───► grayscale. */
|
||||
end /*row*/ /* [↑] D2C convert decimal ───► char*/
|
||||
end /*col*/ /* [↑] x%1 is the same as TRUNC(x) */
|
||||
/*stick a fork in it, we're all done. */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
blue= "00 00 ff"x /*define the blue color (hexadecimal).*/
|
||||
blue= '00 00 ff'x /*define the blue color (hexadecimal).*/
|
||||
blue= '00 00 FF'x /*define the blue color (hexadecimal).*/
|
||||
blue= '0000ff'x /*define the blue color (hexadecimal).*/
|
||||
|
||||
blue= '00000000 00000000 11111111'b /*define the blue color (binary). */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue