![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
github.com/esimov/triangle/v2
▲ Triangle is a tool for generating triangulated image using delaunay triangulation. It takes a source image and converts it to an abstract image composed of tiles of triangles.
-in
flag.Draw
method can be invoked even on data streams. Check this demo for reference.Head over to this subtopic to get a better understanding of the supported features.
$ go get -u -f github.com/esimov/triangle/cmd/triangle
$ go install
You can also download the binary file from the releases folder.
The library can be installed via Homebrew too.
$ brew install triangle
proc := &triangle.Processor{
// initialize processor struct
}
img := &triangle.Image{
Processor: *proc,
}
input, err := os.Open("input.jpg")
if err != nil {
log.Fatalf("error opening the source file: %v", err)
}
// decode image
src, err := tri.DecodeImage(input)
if err != nil {
log.Fatalf("error decoding the image: %v", err)
}
res, _, _, err := img.Draw(src, proc, func() {})
if err != nil {
log.Fatalf("error generating the triangles: %v", err)
}
output, err := os.Open("output.png")
if err != nil {
log.Fatalf("error opening the destination file: %v", err)
}
// encode image
png.Encode(output, res)
$ triangle --help
The following flags are supported:
Flag | Default | Description |
---|---|---|
in | n/a | Source image |
out | n/a | Destination image |
bl | 2 | Blur radius |
nf | 0 | Noise factor |
bf | 1 | Blur factor |
ef | 6 | Edge factor |
pr | 0.075 | Point rate |
pth | 10 | Points threshold |
pts | 2500 | Maximum number of points |
so | 10 | Sobel filter threshold |
sl | false | Use solid stroke color (yes/no) |
wf | 0 | Wireframe mode (0: without stroke, 1: with stroke, 2: stroke only) |
st | 1 | Stroke width |
gr | false | Output in grayscale mode |
web | false | Open the SVG file in the web browser |
bg | ' ' | Background color (specified as hex value) |
cw | system spec. | Number of files to process concurrently |
The CLI tool also let you process multiple images from a directory concurrently. You only need to provide the source and the destination folder by using the -in
and -out
flags.
$ triangle -in <input_folder> -out <output-folder>
You can provide also an image file URL for the -in
flag.
$ triangle -in <image_url> -out <output-folder>
The CLI tool accepts also pipe names, which means you can use stdin
and stdout
without the need of providing a value for the -in
and -out
flag directly since these defaults to -
. For this reason it's possible to use curl
for example for downloading an image from the internet and invoke the triangulation process over it directly without the need of getting the image first and calling ▲ Triangle afterwards.
Here are some examples using pipe names:
$ curl -s <image_url> | triangle > out.jpg
$ cat input/source.jpg | triangle > out.jpg
$ triangle -in input/source.jpg > out.jpg
$ cat input/source.jpg | triangle -out out.jpg
$ triangle -out out.jpg < input/source.jpg
You can specify a background color in case of transparent background images (.png
) by using the -bg
flag. This flag accepts a hexadecimal string value. For example setting the flag to -bg=#ffffff00
will set the alpha channel of the resulted image transparent.
By default the output is saved to an image file, but you can export the resulted vertices even to an SVG file. The CLI tool can recognize the output type directly from the file extension. This is a handy addition for those who wish to generate large images without guality loss.
$ triangle -in samples/input.jpg -out output.svg
Using with -web
flag you can access the generated svg file directly on the web browser.
$ triangle -in samples/input.jpg -out output.svg -web=true
The following output file types are supported: .jpg
, .jpeg
, .png
, .bmp
, .svg
.
Setting a lower points threshold, the resulted image will be more like a cubic painting. You can even add a noise factor, generating a more artistic, grainy image.
Here are some examples you can experiment with:
$ triangle -in samples/input.jpg -out output.png -wf=0 -pts=3500 -st=2 -bl=2
$ triangle -in samples/input.jpg -out output.png -wf=2 -pts=5500 -st=1 -bl=10
Copyright © 2018 Endre Simo
This project is under the MIT License. See the LICENSE file for the full license text.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.