A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://gist.github.com/penteract/109f39adf003b2f2c64ad66f575c06f1 below:

Calculate the exact results of css filters, according to spec https://www.w3.org/TR/filter-effects/#ShorthandEquivalents · GitHub

import numpy as np import sys lumr = .213 lumg=.715 lumb=.072 lum3 = [lumr,lumg,lumb] lumd = np.diag([lumr,lumg,lumb]) kmat = np.mat([lum3]*3) cosmat = np.identity(3)-kmat sinmat = np.mat([ [-lumr,-lumg,1-lumb], [.143,.140,-.283], [lumr-1,lumg,lumb]]) sepk = np.mat([[.393,.769,.189], [.349,.686,.168], [.272,.534,.131]]) sepb = np.identity(3)-sepk gsk = np.mat([[0.2126,0.7152,0.0722]]*3)# same as kmat, but with more precision gsb = np.identity(3)-gsk def getHueRotmat(θ): return kmat + np.cos(θ)*cosmat + np.sin(θ)*sinmat def getSatMat(k): return (kmat + k*cosmat) def getSepiaMat(k): return sepk+(1-k)*sepb def getGrayMat(k): return gsk+(1-k)*gsb def clip(v): return [np.clip(x,0,1) for x in v] fl = """brightness(2) contrast(0.4) grayscale(0.2) hue-rotate(270deg) invert(0.6) opacity(0.8) saturate(10) sepia(0.4) blur(3px) drop-shadow(10px 10px 10px #0f0)""" def col(fn): def g(args): fInner = fn(args) return (lambda v: fInner(v[:3])+v[3:]) return g @col def hueRotate(degrees): return (lambda v: [x[0,0] for x in getHueRotmat(degrees*(np.pi/180))*np.array([[x] for x in v])]) @col def brightness(k): return (lambda v: [x*k for x in v]) @col def contrast(k): return (lambda v: [(x-0.5)*k+0.5 for x in v]) def invert(k): if k>1:k=1 return contrast(1-2*k) def opacity(k): if k>1:k=1 return lambda v:v[:3]+[k*v[3]] @col def saturate(k): return (lambda v: [x[0,0] for x in getSatMat(k)*np.array([[x] for x in v])]) @col def sepia(k): if k>1:k=1 return (lambda v: [x[0,0] for x in getSepiaMat(k)*np.array([[x] for x in v])]) @col def grayscale(k): if k>1: k=1 return (lambda v: [x[0,0] for x in getGrayMat(k)*np.array([[x] for x in v])]) fl = [brightness(2), contrast(0.4), grayscale(0.2), hueRotate(270), invert(0.6), opacity(0.8),saturate(10),sepia(0.4)] print("css-filter-chains/long-chain") inp = [x/255 for x in [255,0,0,255]] r=inp for fn in fl: r = clip(fn(r)) print([x*255 for x in r]) #[123.19138383897611, 151.07392486732812, 47.37513316531215, 204.0] print("css-filters/hue-rotate-multichannel") cs1 = [255,128,64] cs2 = [128,255,64] cs3 = [32,64,255] for v in [cs1,cs2,cs3]: print([x*255 for x in hueRotate(90)([x/255 for x in v])]) #[64.00000000000001, 186.71599999999998, 45.88599999999997] #[64.00000000000001, 250.089, 300.39399999999995] #[255.0, 12.307000000000006, 109.872] print("css-filters/saturate-zero") print([x*255 for x in saturate(0)([255/255,0,0])]) #[54.315, 54.315, 54.315]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.3