├── tux.png
├── nginx.png
├── author.png
├── sample 1.png
├── sample2.png
├── sample3.png
├── sample4.png
├── custom_marker.png
├── multigraph1.jpg
├── multigraph2.jpg
├── multigraph3.jpg
├── samplebarline.png
├── samplelegend.png
├── samplemarker.png
├── samplemarkers.png
├── samplescatter.png
├── samplesimple.png
├── sampletitle.png
├── samplexlabel.png
├── sampleylabel.png
├── samplecustompng.png
├── samplehistogram.png
├── samplehistseven.png
├── samplelimitsxy.png
├── samplemultiline.png
├── sampleplotline.png
├── samplexyvalues.png
├── background_example.jpg
├── samplebackground.png
├── sampleguidelines.png
├── samplelegendnames.png
├── samplemarkerplot.png
├── samplegraybackground.png
├── samplerotationticks.png
├── fonts
└── dejavu-fonts-ttf-2.37
│ ├── BUGS
│ ├── ttf
│ ├── DejaVuSans.ttf
│ ├── DejaVuSerif.ttf
│ ├── DejaVuSans-Bold.ttf
│ ├── DejaVuSansMono.ttf
│ ├── DejaVuSerif-Bold.ttf
│ ├── DejaVuMathTeXGyre.ttf
│ ├── DejaVuSans-Oblique.ttf
│ ├── DejaVuSerif-Italic.ttf
│ ├── DejaVuSans-ExtraLight.ttf
│ ├── DejaVuSansCondensed.ttf
│ ├── DejaVuSansMono-Bold.ttf
│ ├── DejaVuSerifCondensed.ttf
│ ├── DejaVuSans-BoldOblique.ttf
│ ├── DejaVuSansMono-Oblique.ttf
│ ├── DejaVuSerif-BoldItalic.ttf
│ ├── DejaVuSansCondensed-Bold.ttf
│ ├── DejaVuSansMono-BoldOblique.ttf
│ ├── DejaVuSerifCondensed-Bold.ttf
│ ├── DejaVuSansCondensed-Oblique.ttf
│ ├── DejaVuSerifCondensed-Italic.ttf
│ ├── DejaVuSansCondensed-BoldOblique.ttf
│ └── DejaVuSerifCondensed-BoldItalic.ttf
│ ├── fontconfig
│ ├── 20-unhint-small-dejavu-sans.conf
│ ├── 20-unhint-small-dejavu-serif.conf
│ ├── 20-unhint-small-dejavu-sans-mono.conf
│ ├── 57-dejavu-sans-mono.conf
│ ├── 57-dejavu-serif.conf
│ └── 57-dejavu-sans.conf
│ ├── AUTHORS
│ ├── README.md
│ ├── LICENSE
│ ├── langcover.txt
│ └── unicover.txt
├── img2img
├── source_example.jpg
├── img2img_result_0.jpg
├── img2img_result_1.jpg
├── img2img_result_10.jpg
├── img2img_result_11.jpg
├── img2img_result_2.jpg
├── img2img_result_3.jpg
├── img2img_result_4.jpg
├── img2img_result_5.png
├── img2img_result_6.png
├── img2img_result_7.jpg
├── img2img_result_8.jpg
├── img2img_result_9.jpg
├── source_example_pdf.pdf
├── source_example_psd.psd
├── PHP-Instagram-effects-master
│ ├── assets
│ │ ├── bg1.jpg
│ │ ├── pattern1.jpg
│ │ ├── pattern3.jpg
│ │ ├── pattern4.jpg
│ │ └── pattern5.jpg
│ ├── examples
│ │ ├── example.jpg
│ │ ├── aqua.php
│ │ ├── cool.php
│ │ ├── gray.php
│ │ ├── old.php
│ │ ├── old2.php
│ │ ├── old3.php
│ │ ├── boost.php
│ │ ├── fuzzy.php
│ │ ├── light.php
│ │ ├── sepia.php
│ │ ├── bubbles.php
│ │ └── colorise.php
│ ├── composer.json
│ ├── README.md
│ ├── LICENCE
│ └── src
│ │ └── Image
│ │ └── Filter.php
└── example.php
├── releases
├── ext-op-ml-php
├── example.php
└── ext-op-ml-php.class.php
├── example.php
└── README.md
/tux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/tux.png
--------------------------------------------------------------------------------
/nginx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/nginx.png
--------------------------------------------------------------------------------
/author.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/author.png
--------------------------------------------------------------------------------
/sample 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sample 1.png
--------------------------------------------------------------------------------
/sample2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sample2.png
--------------------------------------------------------------------------------
/sample3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sample3.png
--------------------------------------------------------------------------------
/sample4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sample4.png
--------------------------------------------------------------------------------
/custom_marker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/custom_marker.png
--------------------------------------------------------------------------------
/multigraph1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/multigraph1.jpg
--------------------------------------------------------------------------------
/multigraph2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/multigraph2.jpg
--------------------------------------------------------------------------------
/multigraph3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/multigraph3.jpg
--------------------------------------------------------------------------------
/samplebarline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplebarline.png
--------------------------------------------------------------------------------
/samplelegend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplelegend.png
--------------------------------------------------------------------------------
/samplemarker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplemarker.png
--------------------------------------------------------------------------------
/samplemarkers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplemarkers.png
--------------------------------------------------------------------------------
/samplescatter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplescatter.png
--------------------------------------------------------------------------------
/samplesimple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplesimple.png
--------------------------------------------------------------------------------
/sampletitle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sampletitle.png
--------------------------------------------------------------------------------
/samplexlabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplexlabel.png
--------------------------------------------------------------------------------
/sampleylabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sampleylabel.png
--------------------------------------------------------------------------------
/samplecustompng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplecustompng.png
--------------------------------------------------------------------------------
/samplehistogram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplehistogram.png
--------------------------------------------------------------------------------
/samplehistseven.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplehistseven.png
--------------------------------------------------------------------------------
/samplelimitsxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplelimitsxy.png
--------------------------------------------------------------------------------
/samplemultiline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplemultiline.png
--------------------------------------------------------------------------------
/sampleplotline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sampleplotline.png
--------------------------------------------------------------------------------
/samplexyvalues.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplexyvalues.png
--------------------------------------------------------------------------------
/background_example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/background_example.jpg
--------------------------------------------------------------------------------
/samplebackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplebackground.png
--------------------------------------------------------------------------------
/sampleguidelines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/sampleguidelines.png
--------------------------------------------------------------------------------
/samplelegendnames.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplelegendnames.png
--------------------------------------------------------------------------------
/samplemarkerplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplemarkerplot.png
--------------------------------------------------------------------------------
/samplegraybackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplegraybackground.png
--------------------------------------------------------------------------------
/samplerotationticks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/samplerotationticks.png
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/BUGS:
--------------------------------------------------------------------------------
1 | See http://dejavu.sourceforge.net/wiki/index.php/Bugs
2 |
3 | $Id$
4 |
--------------------------------------------------------------------------------
/img2img/source_example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/source_example.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_0.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_1.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_10.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_11.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_2.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_3.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_4.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_5.png
--------------------------------------------------------------------------------
/img2img/img2img_result_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_6.png
--------------------------------------------------------------------------------
/img2img/img2img_result_7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_7.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_8.jpg
--------------------------------------------------------------------------------
/img2img/img2img_result_9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/img2img_result_9.jpg
--------------------------------------------------------------------------------
/img2img/source_example_pdf.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/source_example_pdf.pdf
--------------------------------------------------------------------------------
/img2img/source_example_psd.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/source_example_psd.psd
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-Bold.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-Bold.ttf
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/assets/bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/assets/bg1.jpg
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuMathTeXGyre.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuMathTeXGyre.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-Oblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-Oblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-Italic.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-ExtraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-ExtraLight.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-Bold.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed.ttf
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/assets/pattern1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/assets/pattern1.jpg
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/assets/pattern3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/assets/pattern3.jpg
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/assets/pattern4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/assets/pattern4.jpg
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/assets/pattern5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/assets/pattern5.jpg
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/img2img/PHP-Instagram-effects-master/examples/example.jpg
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-BoldOblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans-BoldOblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-Oblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-Oblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerif-BoldItalic.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-Bold.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-BoldOblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansMono-BoldOblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-Bold.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-Oblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-Oblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-Italic.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-BoldOblique.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSansCondensed-BoldOblique.ttf
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vivesweb/graph-php/HEAD/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSerifCondensed-BoldItalic.ttf
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/aqua.php:
--------------------------------------------------------------------------------
1 | aqua();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/cool.php:
--------------------------------------------------------------------------------
1 | cool();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/gray.php:
--------------------------------------------------------------------------------
1 | gray();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/old.php:
--------------------------------------------------------------------------------
1 | old();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/old2.php:
--------------------------------------------------------------------------------
1 | old2();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/old3.php:
--------------------------------------------------------------------------------
1 | old3();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/boost.php:
--------------------------------------------------------------------------------
1 | boost();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/fuzzy.php:
--------------------------------------------------------------------------------
1 | fuzzy();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/light.php:
--------------------------------------------------------------------------------
1 | light();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/sepia.php:
--------------------------------------------------------------------------------
1 | sepia();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/bubbles.php:
--------------------------------------------------------------------------------
1 | bubbles();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/examples/colorise.php:
--------------------------------------------------------------------------------
1 | colorise();
8 |
9 | header("Content-type: image/png");
10 | imagepng($image);
11 | imagedestroy($image);
12 |
--------------------------------------------------------------------------------
/releases:
--------------------------------------------------------------------------------
1 | 2021-10-30 v.1.0.1
2 | - Change cfg & gd vars from private to protected for external use in new php-plotlib class
3 | - Change padding automatically when change width or height
4 | - Add new param to cfg to control font size for xticks & yticks
5 | - Add new param to cfg to control margin between X & Y ticklabels & ticks
6 | - Add Boolean draw X & Y label ticks
7 | - Add cfg bordertype [‘square’, ‘halfsquare’] for plot in pairplot
8 | - Add cfg ymarginleftlabel
9 |
10 | 2021-10-28 v.1.0.0
11 | - First release
12 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "zaachi/php-instagram-effects",
3 | "description": "PHP class for photo effects like Instagram",
4 | "license": "MIT",
5 | "authors": [
6 | {
7 | "name": "Jiri Zachar",
8 | "email": "zaachi@gmail.com"
9 | },
10 | {
11 | "name": "Dan Fuhry",
12 | "email": "dan@fuhry.com"
13 | }
14 | ],
15 | "require": {
16 | "ext-gd": "*"
17 | },
18 | "autoload": {
19 | "psr-4": {
20 | "Zaachi\\": "src/"
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/README.md:
--------------------------------------------------------------------------------
1 | PHP-Instagram-effects
2 | =====================
3 |
4 | PHP class for photo effects similar to Instagram
5 |
6 | ## Usage
7 |
8 | ```php
9 | use Zaachi\Image\Filter;
10 | require 'vendor/autoload.php';
11 |
12 | $image = imagecreatefromjpeg("/path/to/image.jpg");
13 |
14 | $filter = (new Filter($image))->aqua();
15 |
16 | header('Content-type: image/jpeg');
17 | imagejpeg($filter->getImage());
18 | ```
19 |
20 | Examples of usage are in the `examples` directory. To generate example images, this bash snippet may be helpful:
21 |
22 | ```shell
23 | for f in *.php; do php $f > ${f%.php}.png; done
24 | ```
25 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/20-unhint-small-dejavu-sans.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 | DejaVu Sans
18 |
19 |
20 | 7.5
21 |
22 |
23 | false
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/20-unhint-small-dejavu-serif.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 | DejaVu Serif
18 |
19 |
20 | 7.5
21 |
22 |
23 | false
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/20-unhint-small-dejavu-sans-mono.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 | DejaVu Sans Mono
18 |
19 |
20 | 7.5
21 |
22 |
23 | false
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/AUTHORS:
--------------------------------------------------------------------------------
1 | abysta at yandex.ru
2 | Adrian Schroeter
3 | Aleksey Chalabyan
4 | Andrey Valentinovich Panov
5 | Ben Laenen
6 | Besarion Gugushvili
7 | Bhikkhu Pesala
8 | Clayborne Arevalo
9 | Dafydd Harries
10 | Danilo Segan
11 | Davide Viti
12 | David Jez
13 | David Lawrence Ramsey
14 | Denis Jacquerye
15 | Dwayne Bailey
16 | Eugeniy Meshcheryakov
17 | Frédéric Wang
18 | Gee Fung Sit
19 | Heikki Lindroos
20 | James Cloos
21 | James Crippen
22 | John Karp
23 | Keenan Pepper
24 | Lars Næsbye Christensen
25 | Lior Halphon
26 | MaEr
27 | Mashrab Kuvatov
28 | Max Berger
29 | Mederic Boquien
30 | Michael Everson
31 | MihailJP
32 | Misu Moldovan
33 | Nguyen Thai Ngoc Duy
34 | Nicolas Mailhot
35 | Norayr Chilingarian
36 | Olleg Samoylov
37 | Ognyan Kulev
38 | Ondrej Koala Vacha
39 | Peter Cernak
40 | Remy Oudompheng
41 | Roozbeh Pournader
42 | Rouben Hakobian
43 | Sahak Petrosyan
44 | Sami Tarazi
45 | Sander Vesik
46 | Stepan Roh
47 | Stephen Hartke
48 | Steve Tinney
49 | Tavmjong Bah
50 | Thomas Henlich
51 | Tim May
52 | Valentin Stoykov
53 | Vasek Stodulka
54 | Wesley Transue
55 | Yoshiki Ohshima
56 |
57 | $Id$
58 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/LICENCE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2013 Google, Inc. http://zaachi.com
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/57-dejavu-sans-mono.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 | Bepa Mono
14 |
15 | DejaVu Sans Mono
16 |
17 |
18 |
19 | Bitstream Prima Sans Mono
20 |
21 | DejaVu Sans Mono
22 |
23 |
24 |
25 | Bitstream Vera Sans Mono
26 |
27 | DejaVu Sans Mono
28 |
29 |
30 |
31 | DejaVu LGC Sans Mono
32 |
33 | DejaVu Sans Mono
34 |
35 |
36 |
37 | Olwen Sans Mono
38 |
39 | DejaVu Sans Mono
40 |
41 |
42 |
43 | SUSE Sans Mono
44 |
45 | DejaVu Sans Mono
46 |
47 |
48 |
49 |
50 | DejaVu Sans Mono
51 |
52 | monospace
53 |
54 |
55 |
56 |
57 | monospace
58 |
59 | DejaVu Sans Mono
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/57-dejavu-serif.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 | Bitstream Prima Serif
14 |
15 | DejaVu Serif
16 |
17 |
18 |
19 | Bitstream Vera Serif
20 |
21 | DejaVu Serif
22 |
23 |
24 |
25 | DejaVu LGC Serif
26 |
27 | DejaVu Serif
28 |
29 |
30 |
31 | Hunky Serif
32 |
33 | DejaVu Serif
34 |
35 |
36 |
37 | Olwen Serif
38 |
39 | DejaVu Serif
40 |
41 |
42 |
43 | SUSE Serif
44 |
45 | DejaVu Serif
46 |
47 |
48 |
49 |
50 | Verajja Serif
51 |
52 | DejaVu Serif
53 |
54 |
55 |
56 |
57 | DejaVu Serif
58 |
59 | serif
60 |
61 |
62 |
63 |
64 | serif
65 |
66 | DejaVu Serif
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/fontconfig/57-dejavu-sans.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 | Arev Sans
14 |
15 | DejaVu Sans
16 |
17 |
18 |
19 | Bepa
20 |
21 | DejaVu Sans
22 |
23 |
24 |
25 | Bitstream Prima Sans
26 |
27 | DejaVu Sans
28 |
29 |
30 |
31 | Bitstream Vera Sans
32 |
33 | DejaVu Sans
34 |
35 |
36 |
37 | DejaVu LGC Sans
38 |
39 | DejaVu Sans
40 |
41 |
42 |
43 | Hunky Sans
44 |
45 | DejaVu Sans
46 |
47 |
48 |
49 | Olwen Sans
50 |
51 | DejaVu Sans
52 |
53 |
54 |
55 | SUSE Sans
56 |
57 | DejaVu Sans
58 |
59 |
60 |
61 | Verajja
62 |
63 | DejaVu Sans
64 |
65 |
66 |
67 |
68 | VerajjaPDA
69 |
70 | DejaVu Sans
71 |
72 |
73 |
74 |
75 | DejaVu Sans
76 |
77 | sans-serif
78 |
79 |
80 |
81 |
82 | sans-serif
83 |
84 | DejaVu Sans
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/README.md:
--------------------------------------------------------------------------------
1 | [](https://travis-ci.org/dejavu-fonts/dejavu-fonts)
2 |
3 | DejaVu fonts 2.37 (c)2004-2016 DejaVu fonts team
4 | ------------------------------------------------
5 |
6 | The DejaVu fonts are a font family based on the Bitstream Vera Fonts
7 | (http://gnome.org/fonts/). Its purpose is to provide a wider range of
8 | characters (see status.txt for more information) while maintaining the
9 | original look and feel.
10 |
11 | DejaVu fonts are based on Bitstream Vera fonts version 1.10.
12 |
13 | Available fonts (Sans = sans serif, Mono = monospaced):
14 |
15 | DejaVu Sans Mono
16 | DejaVu Sans Mono Bold
17 | DejaVu Sans Mono Bold Oblique
18 | DejaVu Sans Mono Oblique
19 | DejaVu Sans
20 | DejaVu Sans Bold
21 | DejaVu Sans Bold Oblique
22 | DejaVu Sans Oblique
23 | DejaVu Sans ExtraLight (experimental)
24 | DejaVu Serif
25 | DejaVu Serif Bold
26 | DejaVu Serif Bold Italic (experimental)
27 | DejaVu Serif Italic (experimental)
28 | DejaVu Sans Condensed (experimental)
29 | DejaVu Sans Condensed Bold (experimental)
30 | DejaVu Sans Condensed Bold Oblique (experimental)
31 | DejaVu Sans Condensed Oblique (experimental)
32 | DejaVu Serif Condensed (experimental)
33 | DejaVu Serif Condensed Bold (experimental)
34 | DejaVu Serif Condensed Bold Italic (experimental)
35 | DejaVu Serif Condensed Italic (experimental)
36 | DejaVu Math TeX Gyre
37 |
38 | All fonts are also available as derivative called DejaVu LGC with support
39 | only for Latin, Greek and Cyrillic scripts.
40 |
41 | For license information see LICENSE. What's new is described in NEWS. Known
42 | bugs are in BUGS. All authors are mentioned in AUTHORS.
43 |
44 | Fonts are published in source form as SFD files (Spline Font Database from
45 | FontForge - http://fontforge.sf.net/) and in compiled form as TTF files
46 | (TrueType fonts).
47 |
48 | For more information go to http://dejavu.sourceforge.net/.
49 |
50 | Characters from Arev fonts, Copyright (c) 2006 by Tavmjong Bah:
51 | ---------------------------
52 | U+01BA, U+01BF, U+01F7, U+021C-U+021D, U+0220, U+0222-U+0223,
53 | U+02B9, U+02BA, U+02BD, U+02C2-U+02C5, U+02d4-U+02D5,
54 | U+02D7, U+02EC-U+02EE, U+0346-U+034E, U+0360, U+0362,
55 | U+03E2-03EF, U+0460-0463, U+0466-U+0486, U+0488-U+0489, U+04A8-U+04A9,
56 | U+0500-U+050F, U+2055-205E, U+20B0, U+20B2-U+20B3, U+2102, U+210D, U+210F,
57 | U+2111, U+2113, U+2115, U+2118-U+211A, U+211C-U+211D, U+2124, U+2135,
58 | U+213C-U+2140, U+2295-U+2298, U+2308-U+230B, U+26A2-U+26B1, U+2701-U+2704,
59 | U+2706-U+2709, U+270C-U+274B, U+2758-U+275A, U+2761-U+2775, U+2780-U+2794,
60 | U+2798-U+27AF, U+27B1-U+27BE, U+FB05-U+FB06
61 |
62 | DejaVu Math TeX Gyre
63 | --------------------
64 | TeX Gyre DJV Math by B. Jackowski, P. Strzelczyk and P. Pianowski
65 | (on behalf of TeX users groups).
66 |
67 | $Id$
68 |
--------------------------------------------------------------------------------
/img2img/example.php:
--------------------------------------------------------------------------------
1 |
17 | * just before in /etc/ImageMagick-7/policy.xml
18 | * * Change ImageMagick-7 with your Imagick version
19 | *
20 | * @author Rafael Martin Soto
21 | * @author {@link https://www.inatica.com/ Inatica}
22 | * @link https://rafamartin10.blogspot.com/
23 | * @since October 2021
24 | * @version 1.0.1
25 | * @license GNU General Public License v3.0
26 | */
27 |
28 |
29 | include __DIR__ . '/img2img.class.php';
30 |
31 |
32 | // filter instragram old
33 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
34 | $img2img->filter( IMG_FILTER_INSTGR_OLD );
35 | $img2img->save( '/tmp/img2img_result_0.jpg' );
36 | unset( $img2img );
37 |
38 | // Example of use directly from php GD
39 | $test = imagecreatefromjpeg( __DIR__.'/source_example.jpg');
40 | $img2img = new img2img( $test );
41 | $img2img->thumb( '120x90' );
42 | $img2img->save( '/tmp/img2img_result_1.jpg' );
43 | unset( $img2img );
44 |
45 |
46 | // Flip Horizontal
47 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
48 | $img2img->flip( );
49 | $img2img->save( '/tmp/img2img_result_2.jpg' );
50 | unset( $img2img );
51 |
52 |
53 | // filter sepia
54 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
55 | $img2img->filter( IMG_FILTER_SEPIA, 4, 80 );
56 | $img2img->save( '/tmp/img2img_result_3.jpg' );
57 | unset( $img2img );
58 |
59 |
60 | // filter Black & White
61 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
62 | $img2img->filter( IMG_FILTER_BLACK_WHITE );
63 | $img2img->save( '/tmp/img2img_result_4.jpg' );
64 | unset( $img2img );
65 |
66 |
67 | // Example of use from file & use of array default sizes defined by id & Change format to png
68 | // It can use to make different sizes of thumbnails at once
69 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
70 | for($i=5;$i<7;$i++){
71 | $img2img->thumb( $i );
72 | $img2img->save( '/tmp/img2img_result_'.$i.'.png' );
73 | }
74 | unset( $img2img );
75 |
76 |
77 | // filter VIGNETTE
78 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
79 | $img2img->filter( IMG_FILTER_VIGNETTE, 100, 100, 100, 100, ); // arg1: blackPoint, arg2: $whitePoint, arg3: $x, arg4: $y
80 | $img2img->save( '/tmp/img2img_result_7.jpg' );
81 | unset( $img2img );
82 |
83 |
84 | // create preview from PHOTOSHOP PSD
85 | $img2img = new img2img( __DIR__.'/source_example_psd.psd' );
86 | $img2img->resample( 120, 90 );
87 | $img2img->save( '/tmp/img2img_result_8.jpg' );
88 | unset( $img2img );
89 |
90 |
91 | // create preview form PDF
92 | $img2img = new img2img( __DIR__.'/source_example_pdf.pdf' );
93 | $img2img->resample( 90, 120 );
94 | $img2img->save( '/tmp/img2img_result_9.jpg' );
95 | unset( $img2img );
96 |
97 |
98 | // Change size maintaining original aspect ratio
99 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
100 | $img2img->resample( 300, 90 );
101 | $img2img->save( '/tmp/img2img_result_10.jpg' );
102 | unset( $img2img );
103 |
104 |
105 | // Change size WHITHOUT maintaining original aspect ratio
106 | $img2img = new img2img( __DIR__.'/source_example.jpg' );
107 | $img2img->resample( 300, 90, false );
108 | $img2img->save( '/tmp/img2img_result_11.jpg' );
109 | unset( $img2img );
110 | ?>
--------------------------------------------------------------------------------
/ext-op-ml-php/example.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Example of ext-op.class.php
9 |
10 |
11 |
12 |
13 | linspace( -5, 5 ): -5 to 5 array in 100 steps:
';
35 | var_dump( $ext_op->linspace( -5, 5 ) );
36 |
37 | echo '
';
38 |
39 |
40 | echo 'linspace( -5, 5, 7 ): -5 to 5 array in 7 steps:
';
41 | var_dump( $ext_op->linspace( -5, 5, 7 ) );
42 |
43 | echo '
';
44 |
45 |
46 |
47 | echo 'pow( [2, 4, 6] ): Pow 2 array [2, 4, 6]:
';
48 | var_dump( $ext_op->pow( [2, 4, 6] ) );
49 |
50 | echo '
';
51 |
52 |
53 | echo 'pow( [2, 4, 6], 3 ): Pow 3 array [2, 4, 6]:
';
54 | var_dump( $ext_op->pow( [2, 4, 6], 3 ) );
55 |
56 | echo '
';
57 |
58 |
59 | echo 'str_len_ttf( "Hellow Wold", __DIR__ . "/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf", 12 ): Length in pixels of "Hellow Wold" string, with DejaVuSans & size 12:
';
60 | $font_path = __DIR__ . '/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf';
61 | if( !file_exists( $font_path) ){
62 | echo 'For do this test you need to specify a valid file name. '.$font_path.' not found. You can download a test fonts from here https://dejavu-fonts.github.io/';
63 | } else {
64 | var_dump( $ext_op->str_len_ttf( 'Hellow Wold', $font_path, 12 ) );
65 | }
66 |
67 | echo '
';
68 |
69 |
70 | echo 'inch_2_pixels( 6.4, 100): 6.4 inches at 100 dpis in Pixels:
';
71 | var_dump( $ext_op->inch_2_pixels( 6.4, 100) );
72 |
73 | echo '
';
74 |
75 |
76 | echo 'hex2rgb( "#1f77b4" ): Color "#1f77b4" in vector of integers RGB:
';
77 | var_dump( $ext_op->hex2rgb( '#1f77b4' ) );
78 |
79 | echo '
';
80 |
81 | echo '
';
82 |
83 |
84 | echo 'From V.1.0.1:
';
85 | echo '-------------------
';
86 |
87 | echo '
';
88 |
89 |
90 | echo 'copysign(1, 50):
';
91 | var_dump( $ext_op->copysign(1, 50) );
92 |
93 | echo '
';
94 |
95 |
96 | echo 'copysign(1, -50):
';
97 | var_dump( $ext_op->copysign(1, -50) );
98 |
99 | echo '
';
100 |
101 | echo '
';
102 |
103 |
104 | echo 'From V.1.0.2:
';
105 | echo '-------------------
';
106 |
107 | echo '
';
108 |
109 |
110 | echo 'avg([1, 2, 3, 4, 5]):
';
111 | var_dump( $ext_op->avg( [1, 2, 3, 4, 5]) );
112 |
113 | echo '
';
114 |
115 |
116 | echo 'freq([1, 2, 2, 3, 3, 4, 5], 2, 3):
';
117 | var_dump( $ext_op->freq( [1, 2, 2, 3, 3, 4, 5], 2, 3) );
118 |
119 | echo '
';
120 |
121 |
122 | echo 'freq([1, 2, 2, 3, 3, 4, 5], 2, 3, true):
';
123 | var_dump( $ext_op->freq( [1, 2, 2, 3, 3, 4, 5], 2, 3, true) );
124 |
125 | echo '
';
126 |
127 |
128 |
129 |
130 | echo 'binarySearch([1, 2, 3, 4, 5], 4):
';
131 | var_dump( $ext_op->binarySearch([1, 2, 3, 4, 5], 4) );
132 |
133 | echo '
';
134 | ?>
135 |
136 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/LICENSE:
--------------------------------------------------------------------------------
1 | Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
2 | Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
3 |
4 |
5 | Bitstream Vera Fonts Copyright
6 | ------------------------------
7 |
8 | Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
9 | a trademark of Bitstream, Inc.
10 |
11 | Permission is hereby granted, free of charge, to any person obtaining a copy
12 | of the fonts accompanying this license ("Fonts") and associated
13 | documentation files (the "Font Software"), to reproduce and distribute the
14 | Font Software, including without limitation the rights to use, copy, merge,
15 | publish, distribute, and/or sell copies of the Font Software, and to permit
16 | persons to whom the Font Software is furnished to do so, subject to the
17 | following conditions:
18 |
19 | The above copyright and trademark notices and this permission notice shall
20 | be included in all copies of one or more of the Font Software typefaces.
21 |
22 | The Font Software may be modified, altered, or added to, and in particular
23 | the designs of glyphs or characters in the Fonts may be modified and
24 | additional glyphs or characters may be added to the Fonts, only if the fonts
25 | are renamed to names not containing either the words "Bitstream" or the word
26 | "Vera".
27 |
28 | This License becomes null and void to the extent applicable to Fonts or Font
29 | Software that has been modified and is distributed under the "Bitstream
30 | Vera" names.
31 |
32 | The Font Software may be sold as part of a larger software package but no
33 | copy of one or more of the Font Software typefaces may be sold by itself.
34 |
35 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
36 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
37 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
38 | TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
39 | FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
40 | ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
41 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
42 | THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
43 | FONT SOFTWARE.
44 |
45 | Except as contained in this notice, the names of Gnome, the Gnome
46 | Foundation, and Bitstream Inc., shall not be used in advertising or
47 | otherwise to promote the sale, use or other dealings in this Font Software
48 | without prior written authorization from the Gnome Foundation or Bitstream
49 | Inc., respectively. For further information, contact: fonts at gnome dot
50 | org.
51 |
52 | Arev Fonts Copyright
53 | ------------------------------
54 |
55 | Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
56 |
57 | Permission is hereby granted, free of charge, to any person obtaining
58 | a copy of the fonts accompanying this license ("Fonts") and
59 | associated documentation files (the "Font Software"), to reproduce
60 | and distribute the modifications to the Bitstream Vera Font Software,
61 | including without limitation the rights to use, copy, merge, publish,
62 | distribute, and/or sell copies of the Font Software, and to permit
63 | persons to whom the Font Software is furnished to do so, subject to
64 | the following conditions:
65 |
66 | The above copyright and trademark notices and this permission notice
67 | shall be included in all copies of one or more of the Font Software
68 | typefaces.
69 |
70 | The Font Software may be modified, altered, or added to, and in
71 | particular the designs of glyphs or characters in the Fonts may be
72 | modified and additional glyphs or characters may be added to the
73 | Fonts, only if the fonts are renamed to names not containing either
74 | the words "Tavmjong Bah" or the word "Arev".
75 |
76 | This License becomes null and void to the extent applicable to Fonts
77 | or Font Software that has been modified and is distributed under the
78 | "Tavmjong Bah Arev" names.
79 |
80 | The Font Software may be sold as part of a larger software package but
81 | no copy of one or more of the Font Software typefaces may be sold by
82 | itself.
83 |
84 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
85 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
86 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
87 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
88 | TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
89 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
90 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
91 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
92 | OTHER DEALINGS IN THE FONT SOFTWARE.
93 |
94 | Except as contained in this notice, the name of Tavmjong Bah shall not
95 | be used in advertising or otherwise to promote the sale, use or other
96 | dealings in this Font Software without prior written authorization
97 | from Tavmjong Bah. For further information, contact: tavmjong @ free
98 | . fr.
99 |
100 | TeX Gyre DJV Math
101 | -----------------
102 | Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
103 |
104 | Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski
105 | (on behalf of TeX users groups) are in public domain.
106 |
107 | Letters imported from Euler Fraktur from AMSfonts are (c) American
108 | Mathematical Society (see below).
109 | Bitstream Vera Fonts Copyright
110 | Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
111 | is a trademark of Bitstream, Inc.
112 |
113 | Permission is hereby granted, free of charge, to any person obtaining a copy
114 | of the fonts accompanying this license (“Fonts”) and associated
115 | documentation
116 | files (the “Font Software”), to reproduce and distribute the Font Software,
117 | including without limitation the rights to use, copy, merge, publish,
118 | distribute,
119 | and/or sell copies of the Font Software, and to permit persons to whom
120 | the Font Software is furnished to do so, subject to the following
121 | conditions:
122 |
123 | The above copyright and trademark notices and this permission notice
124 | shall be
125 | included in all copies of one or more of the Font Software typefaces.
126 |
127 | The Font Software may be modified, altered, or added to, and in particular
128 | the designs of glyphs or characters in the Fonts may be modified and
129 | additional
130 | glyphs or characters may be added to the Fonts, only if the fonts are
131 | renamed
132 | to names not containing either the words “Bitstream” or the word “Vera”.
133 |
134 | This License becomes null and void to the extent applicable to Fonts or
135 | Font Software
136 | that has been modified and is distributed under the “Bitstream Vera”
137 | names.
138 |
139 | The Font Software may be sold as part of a larger software package but
140 | no copy
141 | of one or more of the Font Software typefaces may be sold by itself.
142 |
143 | THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
144 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
145 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
146 | TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
147 | FOUNDATION
148 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
149 | SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
150 | ACTION
151 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
152 | INABILITY TO USE
153 | THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
154 | Except as contained in this notice, the names of GNOME, the GNOME
155 | Foundation,
156 | and Bitstream Inc., shall not be used in advertising or otherwise to promote
157 | the sale, use or other dealings in this Font Software without prior written
158 | authorization from the GNOME Foundation or Bitstream Inc., respectively.
159 | For further information, contact: fonts at gnome dot org.
160 |
161 | AMSFonts (v. 2.2) copyright
162 |
163 | The PostScript Type 1 implementation of the AMSFonts produced by and
164 | previously distributed by Blue Sky Research and Y&Y, Inc. are now freely
165 | available for general use. This has been accomplished through the
166 | cooperation
167 | of a consortium of scientific publishers with Blue Sky Research and Y&Y.
168 | Members of this consortium include:
169 |
170 | Elsevier Science IBM Corporation Society for Industrial and Applied
171 | Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS)
172 |
173 | In order to assure the authenticity of these fonts, copyright will be
174 | held by
175 | the American Mathematical Society. This is not meant to restrict in any way
176 | the legitimate use of the fonts, such as (but not limited to) electronic
177 | distribution of documents containing these fonts, inclusion of these fonts
178 | into other public domain or commercial font collections or computer
179 | applications, use of the outline data to create derivative fonts and/or
180 | faces, etc. However, the AMS does require that the AMS copyright notice be
181 | removed from any derivative versions of the fonts which have been altered in
182 | any way. In addition, to ensure the fidelity of TeX documents using Computer
183 | Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces,
184 | has requested that any alterations which yield different font metrics be
185 | given a different name.
186 |
187 | $Id$
188 |
--------------------------------------------------------------------------------
/img2img/PHP-Instagram-effects-master/src/Image/Filter.php:
--------------------------------------------------------------------------------
1 | image = $image;
27 |
28 | $this->assetDirectory = dirname(dirname(dirname(__FILE__))) . '/assets/';
29 | }
30 |
31 | /**
32 | * Get the current image resource
33 | *
34 | * @return resource
35 | */
36 |
37 | public function getImage() {
38 |
39 | return $this->image;
40 | }
41 |
42 | public function bubbles() {
43 |
44 | $dest = imagecreatefromjpeg($this->assetDirectory . "pattern4.jpg");
45 |
46 | $x = imagesx($this->image);
47 | $y = imagesy($this->image);
48 |
49 | $x2 = imagesx($dest);
50 | $y2 = imagesy($dest);
51 |
52 | $thumb = imagecreatetruecolor($x, $y);
53 | imagecopyresized($thumb, $dest, 0, 0, 0, 0, $x, $y, $x2, $y2);
54 |
55 | imagecopymerge($this->image, $thumb, 0, 0, 0, 0, $x, $y, 20);
56 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 40);
57 | imagefilter($this->image, IMG_FILTER_CONTRAST, -10);
58 |
59 | return $this;
60 | }
61 |
62 | public function colorise() {
63 |
64 | $dest = imagecreatefromjpeg($this->assetDirectory . "pattern5.jpg");
65 |
66 | $x = imagesx($this->image);
67 | $y = imagesy($this->image);
68 |
69 | $x2 = imagesx($dest);
70 | $y2 = imagesy($dest);
71 |
72 | $thumb = imagecreatetruecolor($x, $y);
73 | imagecopyresized($thumb, $dest, 0, 0, 0, 0, $x, $y, $x2, $y2);
74 |
75 | imagecopymerge($this->image, $thumb, 0, 0, 0, 0, $x, $y, 40);
76 | imagefilter($this->image, IMG_FILTER_CONTRAST, -25);
77 |
78 | return $this;
79 | }
80 |
81 | public function sepia() {
82 |
83 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
84 | imagefilter($this->image, IMG_FILTER_COLORIZE, 100, 50, 0);
85 |
86 | return $this;
87 | }
88 |
89 | public function sepia2() {
90 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
91 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -10);
92 | imagefilter($this->image, IMG_FILTER_CONTRAST, -20);
93 | imagefilter($this->image, IMG_FILTER_COLORIZE, 60, 30, -15);
94 |
95 | return $this;
96 | }
97 |
98 | public function sharpen() {
99 |
100 | $gaussian = array(
101 | array(1.0, 1.0, 1.0),
102 | array(1.0, -7.0, 1.0),
103 | array(1.0, 1.0, 1.0)
104 | );
105 | imageconvolution($this->image, $gaussian, 1, 4);
106 |
107 | return $this;
108 | }
109 |
110 | public function emboss() {
111 |
112 | $gaussian = array(
113 | array(-2.0, -1.0, 0.0),
114 | array(-1.0, 1.0, 1.0),
115 | array(0.0, 1.0, 2.0)
116 | );
117 |
118 | imageconvolution($this->image, $gaussian, 1, 5);
119 |
120 | return $this;
121 | }
122 |
123 | public function cool() {
124 |
125 | imagefilter($this->image, IMG_FILTER_MEAN_REMOVAL);
126 | imagefilter($this->image, IMG_FILTER_CONTRAST, -50);
127 |
128 | return $this;
129 | }
130 |
131 | public function old() {
132 |
133 | $dest = imagecreatefromjpeg($this->assetDirectory . "bg1.jpg");
134 |
135 | $x = imagesx($this->image);
136 | $y = imagesy($this->image);
137 |
138 | $x2 = imagesx($dest);
139 | $y2 = imagesy($dest);
140 |
141 | $thumb = imagecreatetruecolor($x, $y);
142 | imagecopyresized($thumb, $dest, 0, 0, 0, 0, $x, $y, $x2, $y2);
143 |
144 | imagecopymerge($this->image, $thumb, 0, 0, 0, 0, $x, $y, 30);
145 |
146 | return $this;
147 | }
148 |
149 | public function old2() {
150 |
151 | $dest = imagecreatefromjpeg($this->assetDirectory . "pattern1.jpg");
152 |
153 | $x = imagesx($this->image);
154 | $y = imagesy($this->image);
155 |
156 | $x2 = imagesx($dest);
157 | $y2 = imagesy($dest);
158 |
159 | $thumb = imagecreatetruecolor($x, $y);
160 | imagecopyresized($thumb, $dest, 0, 0, 0, 0, $x, $y, $x2, $y2);
161 |
162 | imagecopymerge($this->image, $thumb, 0, 0, 0, 0, $x, $y, 40);
163 |
164 | return $this;
165 | }
166 |
167 | public function old3() {
168 |
169 | imagefilter($this->image, IMG_FILTER_CONTRAST, -30);
170 |
171 | $dest = imagecreatefromjpeg($this->assetDirectory . "pattern3.jpg");
172 |
173 | $x = imagesx($this->image);
174 | $y = imagesy($this->image);
175 |
176 | $x2 = imagesx($dest);
177 | $y2 = imagesy($dest);
178 |
179 | $thumb = imagecreatetruecolor($x, $y);
180 | imagecopyresized($thumb, $dest, 0, 0, 0, 0, $x, $y, $x2, $y2);
181 |
182 | imagecopymerge($this->image, $thumb, 0, 0, 0, 0, $x, $y, 50);
183 |
184 | return $this;
185 | }
186 |
187 | public function light() {
188 |
189 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 10);
190 | imagefilter($this->image, IMG_FILTER_COLORIZE, 100, 50, 0, 10);
191 |
192 | return $this;
193 | }
194 |
195 | public function aqua() {
196 |
197 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 70, 0, 30);
198 |
199 | return $this;
200 | }
201 |
202 | public function fuzzy() {
203 |
204 | $gaussian = array(
205 | array(1.0, 1.0, 1.0),
206 | array(1.0, 1.0, 1.0),
207 | array(1.0, 1.0, 1.0)
208 | );
209 |
210 | imageconvolution($this->image, $gaussian, 9, 20);
211 |
212 | return $this;
213 | }
214 |
215 | public function boost() {
216 |
217 | imagefilter($this->image, IMG_FILTER_CONTRAST, -35);
218 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 10);
219 |
220 | return $this;
221 | }
222 |
223 | public function boost2() {
224 | imagefilter( $this->image, IMG_FILTER_CONTRAST, -35);
225 | imagefilter( $this->image, IMG_FILTER_COLORIZE, 25, 25, 25);
226 |
227 | return $this;
228 | }
229 |
230 | public function gray() {
231 |
232 | imagefilter($this->image, IMG_FILTER_CONTRAST, -60);
233 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
234 |
235 | return $this;
236 | }
237 |
238 | public function antique() {
239 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 0);
240 | imagefilter($this->image, IMG_FILTER_CONTRAST, -30);
241 | imagefilter($this->image, IMG_FILTER_COLORIZE, 75, 50, 25);
242 |
243 | return $this;
244 | }
245 |
246 | public function blackwhite() {
247 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
248 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 10);
249 | imagefilter($this->image, IMG_FILTER_CONTRAST, -20);
250 |
251 | return $this;
252 | }
253 |
254 | public function blur() {
255 | imagefilter($this->image, IMG_FILTER_SELECTIVE_BLUR);
256 | imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);
257 | imagefilter($this->image, IMG_FILTER_CONTRAST, -15);
258 | imagefilter($this->image, IMG_FILTER_SMOOTH, -2);
259 |
260 | return $this;
261 | }
262 |
263 | public function vintage() {
264 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 10);
265 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
266 | imagefilter($this->image, IMG_FILTER_COLORIZE, 40, 10, -15);
267 |
268 | return $this;
269 | }
270 |
271 | public function concentrate() {
272 | imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);
273 | imagefilter($this->image, IMG_FILTER_SMOOTH, -10);
274 |
275 | return $this;
276 | }
277 |
278 | public function hermajesty() {
279 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -10);
280 | imagefilter($this->image, IMG_FILTER_CONTRAST, -5);
281 | imagefilter($this->image, IMG_FILTER_COLORIZE, 80, 0, 60);
282 |
283 | return $this;
284 | }
285 |
286 | public function everglow() {
287 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -30);
288 | imagefilter($this->image, IMG_FILTER_CONTRAST, -5);
289 | imagefilter($this->image, IMG_FILTER_COLORIZE, 30, 30, 0);
290 |
291 | return $this;
292 | }
293 |
294 | public function freshblue() {
295 | imagefilter($this->image, IMG_FILTER_CONTRAST, -5);
296 | imagefilter($this->image, IMG_FILTER_COLORIZE, 20, 0, 80, 60);
297 |
298 | return $this;
299 | }
300 |
301 | public function tender() {
302 | imagefilter($this->image, IMG_FILTER_CONTRAST, 5);
303 | imagefilter($this->image, IMG_FILTER_COLORIZE, 80, 20, 40, 50);
304 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 40, 40, 100);
305 | imagefilter($this->image, IMG_FILTER_SELECTIVE_BLUR);
306 |
307 | return $this;
308 | }
309 |
310 | public function dream() {
311 | imagefilter($this->image, IMG_FILTER_COLORIZE, 150, 0, 0, 50);
312 | imagefilter($this->image, IMG_FILTER_NEGATE);
313 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 50, 0, 50);
314 | imagefilter($this->image, IMG_FILTER_NEGATE);
315 | imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);
316 |
317 | return $this;
318 | }
319 |
320 | public function frozen() {
321 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -15);
322 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 0, 100, 50);
323 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 0, 100, 50);
324 | imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);
325 |
326 | return $this;
327 | }
328 |
329 | public function forest() {
330 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 0, 150, 50);
331 | imagefilter($this->image, IMG_FILTER_NEGATE);
332 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 0, 150, 50);
333 | imagefilter($this->image, IMG_FILTER_NEGATE);
334 | imagefilter($this->image, IMG_FILTER_SMOOTH, 10);
335 |
336 | return $this;
337 | }
338 |
339 | public function rain() {
340 | imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);
341 | imagefilter($this->image, IMG_FILTER_MEAN_REMOVAL);
342 | imagefilter($this->image, IMG_FILTER_NEGATE);
343 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 80, 50, 50);
344 | imagefilter($this->image, IMG_FILTER_NEGATE);
345 | imagefilter($this->image, IMG_FILTER_SMOOTH, 10);
346 |
347 | return $this;
348 | }
349 |
350 | public function orangepeel() {
351 | imagefilter($this->image, IMG_FILTER_COLORIZE, 100, 20, -50, 20);
352 | imagefilter($this->image, IMG_FILTER_SMOOTH, 10);
353 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -10);
354 | imagefilter($this->image, IMG_FILTER_CONTRAST, 10);
355 | imagegammacorrect($this->image, 1, 1.2 );
356 |
357 | return $this;
358 | }
359 |
360 | public function darken() {
361 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
362 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -50);
363 |
364 | return $this;
365 | }
366 |
367 | public function summer() {
368 | imagefilter($this->image, IMG_FILTER_COLORIZE, 0, 150, 0, 50);
369 | imagefilter($this->image, IMG_FILTER_NEGATE);
370 | imagefilter($this->image, IMG_FILTER_COLORIZE, 25, 50, 0, 50);
371 | imagefilter($this->image, IMG_FILTER_NEGATE);
372 |
373 | return $this;
374 | }
375 |
376 | public function retro() {
377 | imagefilter($this->image, IMG_FILTER_GRAYSCALE);
378 | imagefilter($this->image, IMG_FILTER_COLORIZE, 100, 25, 25, 50);
379 |
380 | return $this;
381 | }
382 |
383 | public function country() {
384 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -30);
385 | imagefilter($this->image, IMG_FILTER_COLORIZE, 50, 50, 50, 50);
386 | imagegammacorrect($this->image, 1, 0.3);
387 |
388 | return $this;
389 | }
390 |
391 | public function washed() {
392 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 30);
393 | imagefilter($this->image, IMG_FILTER_NEGATE);
394 | imagefilter($this->image, IMG_FILTER_COLORIZE, -50, 0, 20, 50);
395 | imagefilter($this->image, IMG_FILTER_NEGATE );
396 | imagefilter($this->image, IMG_FILTER_BRIGHTNESS, 10);
397 | imagegammacorrect($this->image, 1, 1.2);
398 |
399 | return $this;
400 | }
401 |
402 | }
403 |
--------------------------------------------------------------------------------
/ext-op-ml-php/ext-op-ml-php.class.php:
--------------------------------------------------------------------------------
1 | int(8) [1]=> int(64) [2]=> int(216) }
86 | *
87 | * @param array $arrvalues
88 | * @param integer $exp
89 | * @return array $arrvaluespowered
90 | */
91 | public function pow( $values, $exp = 2 ){
92 | if( is_array( $values ) ){
93 | foreach( $values as &$value ){
94 | $value = $this->pow( $value, $exp );
95 | }
96 | return $values;
97 | } else {
98 | return pow( $values, $exp );
99 | }
100 | } // /pow()
101 |
102 |
103 |
104 | /**
105 | * Calculate max .ttf length in pixels of arry of strings
106 | *
107 | * @param string $text
108 | * @param string $font_path
109 | * @param float $text
110 | * @param string $font_size
111 | * @param float $angle // Default 0 degrees
112 | * @return int $max_length
113 | */
114 | public function arr_max_len_ttf( $arr, $font_path, $font_size, $angle = 0 ){
115 | $max_length = 0;
116 | foreach( $arr as $key => $value){
117 | $length_value = $this->str_len_ttf( $value, $font_path, $font_size );
118 | if( $length_value > $max_length ){
119 | $max_length = $length_value;
120 | }
121 | }
122 |
123 | unset( $length_value );
124 | unset( $value );
125 |
126 | return $max_length;
127 | }// /arr_max_len_ttf()
128 |
129 |
130 |
131 | /**
132 | * Return Length in pixels of $text with a True Type Font & Size given
133 | *
134 | * ex:
135 | * str_len_ttf( "Hellow Wold", __DIR__ . "/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf", 12 ): Length in pixels of "Hellow Wold" string, with DejaVuSans & size 12:
136 | * int(100)
137 | *
138 | * Note: Better to get here to remember returned values of imagettfbbox():
139 | * 0 lower left corner, X position
140 | * 1 lower left corner, Y position
141 | * 2 lower right corner, X position
142 | * 3 lower right corner, Y position
143 | * 4 upper right corner, X position
144 | * 5 upper right corner, Y position
145 | * 6 upper left corner, X position
146 | * 7 upper left corner, Y position
147 | *
148 | * @param string $text
149 | * @param string $font_path
150 | * @param float $text
151 | * @param string $font_size
152 | * @param float $angle // Default 0 degrees
153 | * @return int $str_len_ttf
154 | */
155 | public function str_len_ttf( $text, $font_path, $font_size, $angle = 0 ){
156 | $font_measures = imagettfbbox( $font_size, $angle, $font_path, $text );
157 | return abs( $font_measures[2] - $font_measures[0] );
158 | } // /str_len_ttf()
159 |
160 |
161 |
162 | /**
163 | * Return Height in pixels of $text with a True Type Font & Size given
164 | *
165 | * ex:
166 | * str_len_ttf( "Hellow Wold", __DIR__ . "/fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf", 12 ): Height in pixels of "Hellow Wold" string, with DejaVuSans & size 12:
167 | * int(100)
168 | *
169 | * Note: Better to get here to remember returned values of imagettfbbox():
170 | * 0 lower left corner, X position
171 | * 1 lower left corner, Y position
172 | * 2 lower right corner, X position
173 | * 3 lower right corner, Y position
174 | * 4 upper right corner, X position
175 | * 5 upper right corner, Y position
176 | * 6 upper left corner, X position
177 | * 7 upper left corner, Y position
178 | *
179 | * @param string $text
180 | * @param string $font_path
181 | * @param float $text
182 | * @param string $font_size
183 | * @param float $angle // Default 0 degrees
184 | * @return int $str_len_ttf
185 | */
186 | public function str_height_ttf( $text, $font_path, $font_size, $angle = 0 ){
187 | $font_measures = imagettfbbox( $font_size, $angle, $font_path, $text );
188 | return abs( $font_measures[3] - $font_measures[1] );
189 | } // /str_height_ttf()
190 |
191 |
192 |
193 | /**
194 | * Transform inches in pixels with a dpis given
195 | *
196 | * ex:
197 | * inch_2_pixels( 6.4, 100): 6.4 inches at 100 dpis in Pixels:
198 | * float(640)
199 | *
200 | * @param array $size_inch
201 | * @param array $dpis // Default 72 dpis
202 | * @return int $size_inch * $dpis
203 | */
204 | public function inch_2_pixels( $size_inch, $dpis = 72 ){
205 | return (int)( $size_inch * $dpis );
206 | } // /inch_2_pixels()
207 |
208 |
209 |
210 | /**
211 | * Transform Hex to rgb array ['red', 'green, 'blue']
212 | * Thanks to https://stackoverflow.com/questions/15202079/convert-hex-color-to-rgb-values-in-php
213 | *
214 | * ex:
215 | * hex2rgb( "#1f77b4" ): Color "#1f77b4" in vector of integers RGB:
216 | * array(3) { [0]=> int(31) [1]=> int(119) [2]=> int(180) }
217 | *
218 | * @param array $hex_color
219 | * @return array [$r, $g, $b]
220 | */
221 | public function hex2rgb( $hex_color ){
222 | list( $r, $g, $b ) = array_map(
223 | function ( $c ) {
224 | return hexdec( str_pad( $c, 2, $c ) );
225 | },
226 | str_split( ltrim( $hex_color, '#' ), strlen( $hex_color ) > 4 ? 2 : 1 )
227 | );
228 |
229 | return [$r, $g, $b];
230 | } // /hex2rgb()
231 |
232 | /**
233 | * Returns the magnitude value with the sign of the sign number
234 | *
235 | * Thanks to https://github.com/markrogoyski/math-php/blob/master/src/Arithmetic.php
236 | *
237 | * @param float $magnitude
238 | * @param float $sign
239 | *
240 | * @return float $magnitude with the sign of $sign
241 | */
242 | public function copySign(float $magnitude, float $sign){
243 | return ( ( $sign >= 0 )?abs( $magnitude ):-abs( $magnitude ) );
244 | }
245 |
246 | /**
247 | * search a number in SORTED array
248 | * Return id in array
249 | * if not found, return false
250 | * NOTE: Be carefull with comparations on id = 0 and id = false.
251 | * Use: if( binarySearch() === false )
252 | *
253 | * Thanks to https://www.geeksforgeeks.org/binary-search-php/
254 | *
255 | * @param array $arr
256 | * @param number $x
257 | * @param integer $start
258 | * @param integer $end
259 | */
260 |
261 | public function binarySearch($arr, $x, $start = 0, $end = null){
262 | if( is_null( $end) ){
263 | $end = count( $arr );
264 | }
265 |
266 | if ($end < $start){
267 | return false;
268 | }
269 |
270 | $mid = floor(($end + $start)/2);
271 |
272 | if ($arr[$mid] == $x)
273 | return (int)$mid;
274 | else if ($arr[$mid] > $x) {
275 | // call binarySearch on [start, mid - 1]
276 | return $this->binarySearch($arr, $x, $start, $mid - 1);
277 | } else {
278 | // call binarySearch on [mid + 1, end]
279 | return $this->binarySearch($arr, $x, $mid + 1, $end);
280 | }
281 | } // /binarySearch()
282 |
283 |
284 |
285 | /**
286 | * method to get frequency values in array between $min & $max. $min <= $values < $max
287 | * $max is not included in comparation by default. Only lower values that $max will be inside sum of $freq.
288 | * Set $includemax to true to include the values equal to $max too. $min <= $values <= $max
289 | *
290 | * @param array $arrval
291 | * @param array $min
292 | * @param array $max
293 | * @param boolean $includemax // if false, values < $max ar included. if true, values <= $max are included
294 | * @param boolean $arrvalsorted // if the array is sorted you can to pass true for more speed
295 | * @return integer $freq
296 | */
297 | public function freq( $arrval, $min, $max, $includemax = false, $arrvalsorted = false ){
298 | return ( ( $arrvalsorted ) ? $this->freqsorted( $arrval, $min, $max, $includemax ) : $this->frequnsorted( $arrval, $min, $max, $includemax ) );
299 | } // /freq()
300 |
301 |
302 |
303 | /**
304 | * method to get frequency values in SORTED array between $min & $max. $min <= $values < $max
305 | * $max is not included in comparation by default. Only lower values that $max will be inside sum of $freq.
306 | * Set $includemax to true to include the values equal to $max too. $min <= $values <= $max
307 | *
308 | * @param array $arrval
309 | * @param number $min
310 | * @param number $max
311 | * @param boolean $includemax // if false, values < $max ar included. if true, values <= $max are included
312 | * @return integer $freq
313 | */
314 | private function freqsorted( $arrval, $min, $max, $includemax = false ){
315 | $freq = 0;
316 |
317 | // Binary search
318 | // Thanks to https://stackoverflow.com/questions/6553970/find-the-first-element-in-a-sorted-array-that-is-greater-than-the-target
319 | $count = count( $arrval );
320 | $low = 0;
321 | $high = $count;
322 |
323 | while( $low != $high ) {
324 | $mid = ($low + $high) / 2;
325 | if ($arrval[$mid] < $min) {
326 | $low = $mid + 1;
327 | }
328 | else {
329 | $high = $mid;
330 | }
331 | }
332 | /* Now, low and high both point to the element in question. */
333 |
334 | // Find $min in array. It may be that there are minors equal before
335 | $i = $low;
336 | while( $arrval[$i]>=$min && ($arrval[$i]<$max || ($arrval[$i]==$max && $includemax)) && $i < $count ){
337 | ++$freq;
338 | ++$i;
339 | }
340 |
341 | unset( $count );
342 | unset( $low );
343 | unset( $high );
344 | unset( $mid );
345 | unset( $i );
346 |
347 | return $freq;
348 | } // /freqsorted()
349 |
350 |
351 |
352 | /**
353 | * method to get frequency values in UNSORTED array between $min & $max. $min <= $values < $max
354 | * $max is not included in comparation by default. Only lower values that $max will be inside sum of $freq.
355 | * Set $includemax to true to include the values equal to $max too. $min <= $values <= $max
356 | *
357 | * @param array $arrval
358 | * @param number $min
359 | * @param number $max
360 | * @param boolean $includemax // if false, values < $max ar included. if true, values <= $max are included
361 | * @return integer $freq
362 | */
363 | private function frequnsorted( $arrval, $min, $max, $includemax = false ){
364 | $freq = 0;
365 |
366 | foreach($arrval as $val){
367 | if( $val>=$min && ($val<$max || ($val==$max && $includemax)) ){
368 | ++$freq;
369 | }
370 | }
371 |
372 | unset( $val );
373 |
374 | return $freq;
375 | } // /frequnsorted()
376 |
377 |
378 |
379 | /**
380 | * Metohd to get a Average of array
381 | * @param array $arrval
382 | * @return float $avg
383 | */
384 | public function avg( $arrval ){
385 | return array_sum($arrval)/count($arrval);
386 | } // /avg()
387 |
388 |
389 |
390 | /**
391 | * Metohd to check if array is associative array
392 | * @param array $var
393 | * @return boolean $is_assoc
394 | */
395 | function is_assoc($var){
396 | return is_array($var) && array_diff_key($var,array_keys(array_keys($var)));
397 | } // /is_assoc()
398 |
399 | }// /ext_op
400 | ?>
--------------------------------------------------------------------------------
/example.php:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Example Graph-PHP
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | compute_offset($max_min[0])."/".$graph->compute_offset($max_min[1]);
39 | //var_dump($graph->compute_offset($max_min) );
40 |
41 | //unset($graph);
42 |
43 |
44 |
45 | $graph = new graph();
46 | $graph->bar( [1, 2, 3, 4] );
47 | ?>
48 |
49 |
50 | title("Here your graph TITLE");
58 | $graph->bar( [1, 2, 3, 4] );
59 | ?>
60 |
61 |
62 | ylabel( 'Here your graph Y LABEL' );
69 | $graph->bar( [1, 2, 3, 4] );
70 | ?>
71 |
72 |
73 | xlabel( 'Here your graph X LABEL' );
80 | $graph->bar( [1, 2, 3, 4] );
81 | ?>
82 |
83 |
84 | bar( [10, 20, 30, 40], [1, 4, 9, 16] );
94 | $graph->title("With X & Y Values");
95 | ?>
96 |
97 |
98 | bar( [1, 2, 3, 4], [1, 4, 9, 16] );
106 | $graph->axes([0, 6, 0, 20]);
107 | $graph->title("Limits Axis X & Y");
108 | ?>
109 |
110 |
111 | plot( [1, 1.5, 2, 1.8, 3] );
118 | $graph->title("Simple Plot graph with line");
119 | ?>
120 |
121 |
122 | plot( [1, 1.5, 2, 1.8, 3] );
129 | $graph->plot( [2, 2.8, 1.7, 2, 2.3] );
130 | $graph->title("Multi Line");
131 | ?>
132 |
133 |
134 | math->linspace( 0, 2, 50 );
141 | $graph->plot( $x, $x, ['label'=>'linear'] );
142 | $graph->plot( $x, $graph->math->pow($x, 2), ['label'=>'quadratic'] );
143 | $graph->plot( $x, $graph->math->pow($x, 3), ['label'=>'cubic'] );
144 | $graph->xlabel('x label');
145 | $graph->ylabel('y label');
146 | $graph->title("Simple Plot. With Legend & Labels X, Y");
147 | $graph->legend( );
148 | ?>
149 |
150 |
151 | bar( [1, 2, 3, 4], [10, 9, 10, 8] );
160 | $graph->bar( [1, 2, 3, 4], [8, 6, 9, 7] );
161 | $graph->bar( [1, 2, 3, 4], [6, 5, 7, 5] );
162 | $graph->bar( [1, 2, 3, 4], [3, 3, 4, 2] );
163 | $graph->axes([0, 6, 0, 20]);
164 | $graph->title( 'Multi Bar & fixed Axis Values' );
165 | ?>
166 |
167 |
168 | bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17] );
177 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15] );
178 | $graph->title( 'Bar & Line' );
179 | ?>
180 |
181 |
182 | bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17] );
191 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15] );
192 | $graph->title( 'Legend' );
193 | $graph->legend( );
194 | ?>
195 |
196 |
197 | bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17], ['label'=>'Name Legend 1'] );
206 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15], ['label'=>'Name Legend 2'] );
207 | $graph->title( 'Legend with label names' );
208 | $graph->legend( );
209 | ?>
210 |
211 |
212 | plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => 'x'] );
220 | $graph->plot( [4, 5, 6, 7], [5, 8, 7, 10], ['marker' => 'o'] );
221 | $graph->axes([2, 9, 0, 20]);
222 | $graph->title( 'Lines & Legend with "x" & "o" markers' );
223 | $graph->legend( );
224 | ?>
225 |
226 |
227 | plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => 'd'] );
234 | $graph->plot( [4, 5, 6, 7], [5, 8, 7, 10], ['marker' => 'd'] );
235 | $graph->axes([2, 9, 0, 20]);
236 | $graph->title( '"d" - Diamond Marker' );
237 | ?>
238 |
239 |
240 | plot( [4, 5, 6, 7], [1, 4, 9, 16], 'o' );
249 | $graph->plot( [4, 5, 6, 7], [5, 8, 7, 10], 'x-' );
250 | $graph->axes([2, 9, 0, 20]);
251 | $graph->title( 'Line with marker & only markers' );
252 | ?>
253 |
254 |
255 | math->linspace( 0, 5, 20 );
265 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
266 | $graph->title( 'Colors, disctont. line & markers "--", "square", "^"' );
267 | ?>
268 |
269 |
270 | bar( [4.2, 4.4, 4.6, 4.8, 5, 5.2, 5.4, 5.6, 5.8, 6], [1, 4, 9, 16, 1, 4, 9, 16, 5, 4] );
279 | $graph->xlabel( 'entry a' );
280 | $graph->title( 'Histogram of IQ' );
281 | ?>
282 |
283 |
284 | plot( [1, 2, 3, 4], [1, 4, 9, 16] );
293 | $graph->plot( [1, 2, 3, 4], [10, 3, 5, 10] );
294 | $graph->plot( [1, 2, 3, 4], [5, 4, 3, 4] );
295 | $graph->plot( [1, 2, 3, 4], [7, 4, 10, 15] );
296 | $graph->plot( [1, 2, 3, 4], [7, 8, 4, 2] );
297 | $graph->plot( [1, 2, 3, 4], [2, 1, 2, 20] );
298 | $graph->plot( [1, 2, 3, 4], [20, 10, 20, 20] );
299 | $graph->plot( [1, 2, 3, 4], [3, 4, 5, 4] );
300 | $graph->plot( [1, 2, 3, 4], [7, 8, 9, 10] );
301 | $graph->plot( [1, 2, 3, 4], [10, 11, 12, 13] );
302 | $graph->plot( [1, 2, 3, 4], [14, 15, 16, 17] );
303 | $graph->plot( [1, 2, 3, 4], [16, 17, 18, 19] );
304 | $graph->axes([null, null, 0, 20]);
305 | $graph->title( 'A lot of lines' );
306 | ?>
307 |
308 |
309 | set_drawguidelines( );
317 |
318 | $graph->plot( [1, 2, 3, 4], [1, 4, 9, 16] );
319 | $graph->plot( [1, 2, 3, 4], [10, 3, 5, 10] );
320 | $graph->plot( [1, 2, 3, 4], [5, 4, 3, 4] );
321 | $graph->plot( [1, 2, 3, 4], [7, 4, 10, 15] );
322 | $graph->plot( [1, 2, 3, 4], [7, 8, 4, 2] );
323 | $graph->plot( [1, 2, 3, 4], [2, 1, 2, 20] );
324 | $graph->plot( [1, 2, 3, 4], [20, 10, 20, 20] );
325 | $graph->plot( [1, 2, 3, 4], [3, 4, 5, 4] );
326 | $graph->plot( [1, 2, 3, 4], [7, 8, 9, 10] );
327 | $graph->plot( [1, 2, 3, 4], [10, 11, 12, 13] );
328 | $graph->plot( [1, 2, 3, 4], [14, 15, 16, 17] );
329 | $graph->plot( [1, 2, 3, 4], [16, 17, 18, 19] );
330 | $graph->axes([null, null, 0, 20]);
331 | $graph->title( 'Better with Guidelines' );
332 | ?>
333 |
334 |
335 | plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => __DIR__ . '/author.png',] );
344 | $graph->title( 'Custom image ^_^\'' );
345 | ?>
346 |
347 |
348 | plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => __DIR__ . '/custom_marker.png', 'label'=>'PHP'] );
357 | $graph->plot( [4, 5, 6, 7], [3, 7, 13, 8], ['marker' => __DIR__ . '/tux.png', 'label'=>'GNU/Linux'] );
358 | $graph->plot( [4, 5, 6, 7], [5, 2, 7, 5], ['marker' => __DIR__ . '/nginx.png', 'label'=>'NGINX'] );
359 | $graph->legendwidthlines( 65 );
360 | $graph->legendlabelheight( 33 );
361 | $graph->title( 'Custom Images with Legend' );
362 | $graph->legend( );
363 | ?>
364 |
365 |
366 | plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => __DIR__ . '/custom_marker.png', 'label'=>'PHP'] );
375 | $graph->plot( [4, 5, 6, 7], [3, 7, 13, 8], ['marker' => __DIR__ . '/tux.png', 'label'=>'GNU/Linux'] );
376 | $graph->plot( [4, 5, 6, 7], [5, 2, 7, 5], ['marker' => __DIR__ . '/nginx.png', 'label'=>'NGINX'] );
377 | $graph->set_drawguidelines( );
378 | $graph->legendwidthlines( 65 );
379 | $graph->legendlabelheight( 33 );
380 | $graph->title( 'Better with Guidelines' );
381 | $graph->legend( );
382 | ?>
383 |
384 |
385 | imread( __DIR__ .'/background_example.jpg');
395 | $x = $graph->math->linspace( 0, 5, 20 );
396 | $graph->title( 'Original Background' );
397 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
398 | ?>
399 |
400 |
401 | imread( __DIR__ .'/background_example.jpg');
411 | $graph->title( 'Scaled Bicubic Background' );
412 | $graph->bckgr_img_gd->imagescale( 64, -1, IMG_BICUBIC );
413 | $x = $graph->math->linspace( 0, 5, 20 );
414 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
415 | ?>
416 |
417 |
418 | imread( __DIR__ .'/background_example.jpg');
426 | $graph->title( 'Smooth Background' );
427 | $graph->bckgr_img_gd->filter( IMG_FILTER_SMOOTH, -7 );
428 | $x = $graph->math->linspace( 0, 5, 20 );
429 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
430 | ?>
431 |
432 |
433 | imread( __DIR__ .'/background_example.jpg');
440 | $graph->title( 'Gaussian Blur Filter Background' );
441 | for($i = 0; $i< 10; $i++ ){
442 | $graph->bckgr_img_gd->filter( IMG_FILTER_GAUSSIAN_BLUR );
443 | }
444 | $x = $graph->math->linspace( 0, 5, 20 );
445 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
446 | ?>
447 |
448 |
449 | imread( __DIR__ .'/background_example.jpg');
461 | $graph->title( 'Sepia, Brightness & contrast Background' );
462 | $graph->bckgr_img_gd->filter( IMG_FILTER_SEPIA, 4, 80 );
463 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, -50 );
464 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
465 | $graph->bckgr_img_gd->filter( IMG_FILTER_CONTRAST, 50 );
466 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
467 | $x = $graph->math->linspace( 0, 5, 20 );
468 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
469 | ?>
470 |
471 |
472 | imread( __DIR__ .'/background_example.jpg');
481 | $graph->title( 'Gray, Brightness & contrast Background' );
482 | $graph->bckgr_img_gd->filter( IMG_FILTER_GRAYSCALE );
483 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, -50 );
484 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
485 | $graph->bckgr_img_gd->filter( IMG_FILTER_CONTRAST, 50 );
486 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 115 );
487 | $x = $graph->math->linspace( 0, 5, 20 );
488 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
489 | ?>
490 |
491 |
492 | imread( __DIR__ .'/background_example.jpg');
501 | $graph->title( 'B/W, Brightness & contrast Background' );
502 | $graph->bckgr_img_gd->filter( IMG_FILTER_BLACK_WHITE );
503 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, -50 );
504 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
505 | $graph->bckgr_img_gd->filter( IMG_FILTER_CONTRAST, 50 );
506 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
507 | $x = $graph->math->linspace( 0, 5, 20 );
508 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
509 | ?>
510 |
511 |
512 | imread( __DIR__ .'/background_example.jpg');
522 | $graph->title( 'Scaled & unscaled with Bilinear/G. Blur Background' );
523 |
524 | $graph->bckgr_img_gd->imagescale( 64, -1, IMG_BILINEAR_FIXED );
525 | $graph->bckgr_img_gd->filter( IMG_FILTER_GAUSSIAN_BLUR );
526 | $graph->bckgr_img_gd->imagescale( 400, -1, IMG_BILINEAR_FIXED );
527 |
528 | $x = $graph->math->linspace( 0, 5, 20 );
529 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
530 | ?>
531 |
532 |
533 | imread( __DIR__ .'/background_example.jpg');
542 | $graph->title( 'Scaled & unscaled with Bicubic/G. Blur Background x1' );
543 |
544 | $graph->bckgr_img_gd->imagescale( 64, -1, IMG_BICUBIC );
545 | $graph->bckgr_img_gd->filter( IMG_FILTER_GAUSSIAN_BLUR );
546 | $graph->bckgr_img_gd->imagescale( 400, -1, IMG_BICUBIC );
547 |
548 | $x = $graph->math->linspace( 0, 5, 20 );
549 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
550 | ?>
551 |
552 |
553 | imread( __DIR__ .'/background_example.jpg');
562 | $graph->title( 'Scaled & unscaled with Bicubic/G. Blur Background x3' );
563 |
564 | $graph->bckgr_img_gd->imagescale( 64, -1, IMG_BICUBIC );
565 | for($i = 0; $i< 3; $i++ ){
566 | $graph->bckgr_img_gd->filter( IMG_FILTER_GAUSSIAN_BLUR );
567 | }
568 | $graph->bckgr_img_gd->imagescale( 400, -1, IMG_BICUBIC );
569 |
570 | $x = $graph->math->linspace( 0, 5, 20 );
571 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
572 | ?>
573 |
574 |
575 | imread( __DIR__ .'/background_example.jpg');
584 | $graph->title( 'Scaled & unscaled with Bicubic/G. Blur Background x5' );
585 |
586 | $graph->bckgr_img_gd->imagescale( 64, -1, IMG_BICUBIC );
587 | for($i = 0; $i< 5; $i++ ){
588 | $graph->bckgr_img_gd->filter( IMG_FILTER_GAUSSIAN_BLUR );
589 | }
590 | $graph->bckgr_img_gd->imagescale( 400, -1, IMG_BICUBIC );
591 |
592 | $x = $graph->math->linspace( 0, 5, 20 );
593 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
594 | ?>
595 |
596 |
597 | imread( __DIR__ .'/background_example.jpg');
605 | $x = $graph->math->linspace( 0, 2, 50 );
606 | $graph->plot( $x, $x, ['label'=>'linear'] );
607 | $graph->plot( $x, $graph->math->pow($x, 2), ['label'=>'quadratic'] );
608 | $graph->plot( $x, $graph->math->pow($x, 3), ['label'=>'cubic'] );
609 | $graph->xlabel('Don\'t use darkness images O_o. Is an example');
610 | $graph->ylabel('y label');
611 | $graph->title("Simple Plot with background & Legend");
612 | $graph->legend( );
613 | ?>
614 |
615 |
616 | imread( __DIR__ .'/background_example.jpg');
624 | $graph->set_drawguidelines( );
625 | $x = $graph->math->linspace( 0, 2, 50 );
626 | $graph->plot( $x, $x, ['label'=>'linear'] );
627 | $graph->plot( $x, $graph->math->pow($x, 2), ['label'=>'quadratic'] );
628 | $graph->plot( $x, $graph->math->pow($x, 3), ['label'=>'cubic'] );
629 | $graph->xlabel('Horrible, but is an example of what you can do ;D');
630 | $graph->ylabel('y label');
631 | $graph->title("Simple Plot with background, Legend & Guidelines");
632 | $graph->legend( );
633 | ?>
634 |
635 |
636 | plot( [4, 5, 6, 7], [1, 4, 9, 13], ['marker' => __DIR__ . '/custom_marker.png', 'label'=>'PHP'] );
648 | $graph->plot( [4, 5, 6, 7], [3, 6, 12, 8], ['marker' => __DIR__ . '/tux.png', 'label'=>'GNU/Linux'] );
649 | $graph->plot( [4, 5, 6, 7], [5, 2, 7, 5], ['marker' => __DIR__ . '/nginx.png', 'label'=>'NGINX'] );
650 | $graph->legendwidthlines( 65 );
651 | $graph->legendlabelheight( 33 );
652 | $graph->imread( __DIR__ .'/background_example.jpg');
653 | $graph->title( 'Better use of background' );
654 | $graph->set_drawguidelines( );
655 | $graph->bckgr_img_gd->filter( IMG_FILTER_GRAYSCALE );
656 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, -50 );
657 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
658 | $graph->bckgr_img_gd->filter( IMG_FILTER_CONTRAST, 50 );
659 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 115 );
660 | $graph->bckgr_img_gd->flip( );
661 | $graph->legend();
662 | ?>
663 |
664 |
665 | plot( [40000, 50000, 60000, 70000], [1, 4, 9, 13] );
677 | $graph->title( 'Rotation Xticks' );
678 | $graph->set_drawguidelines( );
679 | $graph->xticks( ['rotation' => 45]);
680 | ?>
681 |
682 |
683 | title( 'Scatter' );
697 | $graph->scatter( $arr_values );
698 | ?>
699 |
700 |
701 | 'Male'] ],
711 | [ [4, 5, 5.7, 6, 7, 8], [8, 6, 7.3, 8, 7, 8], ['label'=>'Female'] ],
712 | ];
713 |
714 | $graph->title( 'Scatter & legend' );
715 | $graph->scatter( $arr_values );
716 | $graph->legend( );
717 | ?>
718 |
719 |
720 | title( 'VALUES FOR HISTOGRAM' );
727 | $graph->bar( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150] );
728 | ?>
729 |
730 |
731 | title( 'DEFAULT HISTOGRAM' );
738 | $graph->hist( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150] );
739 | ?>
740 |
741 |
742 | title( '30 xval HISTOGRAM' );
749 | $graph->hist( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150], ['num_blocks' => 30] );
750 | ?>
751 |
752 |
753 | title( '7 xval HISTOGRAM' );
760 | $graph->hist( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150], ['num_blocks' => 7] );
761 | ?>
762 |
763 |
764 |
770 |
771 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/langcover.txt:
--------------------------------------------------------------------------------
1 | This is the language coverage file for DejaVu fonts
2 | ($Id$)
3 |
4 | Sans Serif Sans Mono
5 | aa Afar 100% (62/62) 100% (62/62) 100% (62/62)
6 | ab Abkhazia 100% (90/90) 93% (84/90) 84% (76/90)
7 | af Afrikaans 100% (69/69) 100% (69/69) 100% (69/69)
8 | ak Akan 100% (73/73) 100% (73/73) 100% (73/73)
9 | am Amharic (0/264) (0/264) (0/264)
10 | an Aragonese 100% (66/66) 100% (66/66) 100% (66/66)
11 | ar Arabic 100% (36/36) (0/36) 100% (36/36)
12 | as Assamese (0/64) (0/64) (0/64)
13 | ast Asturian/Bable/Leonese/Asturleonese 100% (70/70) 100% (70/70) 100% (70/70)
14 | av Avaric 100% (67/67) 100% (67/67) 100% (67/67)
15 | ay Aymara 100% (60/60) 100% (60/60) 100% (60/60)
16 | az-az Azerbaijani in Azerbaijan 100% (66/66) 100% (66/66) 100% (66/66)
17 | az-ir Azerbaijani in Iran 100% (40/40) (0/40) 100% (40/40)
18 | ba Bashkir 100% (82/82) 100% (82/82) 97% (80/82)
19 | be Byelorussian 100% (68/68) 100% (68/68) 100% (68/68)
20 | ber-dz Berber in Algeria 100% (70/70) 100% (70/70) 100% (70/70)
21 | ber-ma Berber in Morocco 100% (32/32) (0/32) (0/32)
22 | bg Bulgarian 100% (60/60) 100% (60/60) 100% (60/60)
23 | bh Bihari (Devanagari script) (0/68) (0/68) (0/68)
24 | bho Bhojpuri (Devanagari script) (0/68) (0/68) (0/68)
25 | bi Bislama 100% (58/58) 100% (58/58) 100% (58/58)
26 | bin Edo or Bini 100% (78/78) 100% (78/78) 100% (78/78)
27 | bm Bambara 100% (60/60) 100% (60/60) 100% (60/60)
28 | bn Bengali (0/63) (0/63) (0/63)
29 | bo Tibetan (0/95) (0/95) (0/95)
30 | br Breton 100% (64/64) 100% (64/64) 100% (64/64)
31 | brx Bodo (Devanagari script) (0/82) (0/82) (0/82)
32 | bs Bosnian 100% (62/62) 100% (62/62) 100% (62/62)
33 | bua Buriat (Buryat) 100% (70/70) 100% (70/70) 100% (70/70)
34 | byn Blin/Bilin (0/255) (0/255) (0/255)
35 | ca Catalan 100% (74/74) 100% (74/74) 100% (74/74)
36 | ce Chechen 100% (67/67) 100% (67/67) 100% (67/67)
37 | ch Chamorro 100% (58/58) 100% (58/58) 100% (58/58)
38 | chm Mari (Lower Cheremis / Upper Cheremis) 100% (76/76) 100% (76/76) 100% (76/76)
39 | chr Cherokee (0/85) (0/85) (0/85)
40 | co Corsican 100% (84/84) 100% (84/84) 100% (84/84)
41 | crh Crimean Tatar/Crimean Turkish 100% (68/68) 100% (68/68) 100% (68/68)
42 | cs Czech 100% (82/82) 100% (82/82) 100% (82/82)
43 | csb Kashubian 100% (74/74) 100% (74/74) 100% (74/74)
44 | cu Old Church Slavonic 100% (103/103) 90% (93/103) 78% (81/103)
45 | cv Chuvash 100% (74/74) 100% (74/74) 100% (74/74)
46 | cy Welsh 100% (78/78) 100% (78/78) 100% (78/78)
47 | da Danish 100% (70/70) 100% (70/70) 100% (70/70)
48 | de German 100% (59/59) 100% (59/59) 100% (59/59)
49 | doi Dogri (0/85) (0/85) (0/85)
50 | dv Divehi/Dhivehi/Maldivian (0/49) (0/49) (0/49)
51 | dz Dzongkha (0/95) (0/95) (0/95)
52 | ee Ewe 100% (99/99) 100% (99/99) 100% (99/99)
53 | el Greek 100% (69/69) 100% (69/69) 100% (69/69)
54 | en English 100% (72/72) 100% (72/72) 100% (72/72)
55 | eo Esperanto 100% (64/64) 100% (64/64) 100% (64/64)
56 | es Spanish 100% (66/66) 100% (66/66) 100% (66/66)
57 | et Estonian 100% (64/64) 100% (64/64) 100% (64/64)
58 | eu Basque 100% (56/56) 100% (56/56) 100% (56/56)
59 | fa Persian 100% (40/40) (0/40) 100% (40/40)
60 | fat Fanti 100% (73/73) 100% (73/73) 100% (73/73)
61 | ff Fulah (Fula) 100% (62/62) 100% (62/62) 100% (62/62)
62 | fi Finnish 100% (62/62) 100% (62/62) 100% (62/62)
63 | fil Filipino 100% (84/84) 100% (84/84) 100% (84/84)
64 | fj Fijian 100% (52/52) 100% (52/52) 100% (52/52)
65 | fo Faroese 100% (68/68) 100% (68/68) 100% (68/68)
66 | fr French 100% (84/84) 100% (84/84) 100% (84/84)
67 | fur Friulian 100% (66/66) 100% (66/66) 100% (66/66)
68 | fy Frisian 100% (75/75) 100% (75/75) 100% (75/75)
69 | ga Irish 100% (80/80) 100% (80/80) 100% (80/80)
70 | gd Scots Gaelic 100% (70/70) 100% (70/70) 100% (70/70)
71 | gez Ethiopic (Geez) (0/218) (0/218) (0/218)
72 | gl Galician 100% (66/66) 100% (66/66) 100% (66/66)
73 | gn Guarani 100% (70/70) 100% (70/70) 100% (70/70)
74 | gu Gujarati (0/68) (0/68) (0/68)
75 | gv Manx Gaelic 100% (54/54) 100% (54/54) 100% (54/54)
76 | ha Hausa 100% (60/60) 100% (60/60) 100% (60/60)
77 | haw Hawaiian 100% (63/63) 100% (63/63) 100% (63/63)
78 | he Hebrew 100% (27/27) (0/27) (0/27)
79 | hi Hindi (Devanagari script) (0/68) (0/68) (0/68)
80 | hne Chhattisgarhi (0/68) (0/68) (0/68)
81 | ho Hiri Motu 100% (52/52) 100% (52/52) 100% (52/52)
82 | hr Croatian 100% (62/62) 100% (62/62) 100% (62/62)
83 | hsb Upper Sorbian 100% (72/72) 100% (72/72) 100% (72/72)
84 | ht Haitian/Haitian Creole 100% (56/56) 100% (56/56) 100% (56/56)
85 | hu Hungarian 100% (70/70) 100% (70/70) 100% (70/70)
86 | hy Armenian 100% (77/77) 100% (77/77) 100% (77/77)
87 | hz Herero 100% (57/57) 100% (57/57) 100% (57/57)
88 | ia Interlingua 100% (52/52) 100% (52/52) 100% (52/52)
89 | id Indonesian 100% (54/54) 100% (54/54) 100% (54/54)
90 | ie Interlingue 100% (52/52) 100% (52/52) 100% (52/52)
91 | ig Igbo 100% (58/58) 100% (58/58) 100% (58/58)
92 | ii Sichuan Yi/Nuosu (0/1165) (0/1165) (0/1165)
93 | ik Inupiaq (Inupiak, Eskimo) 100% (68/68) 100% (68/68) 100% (68/68)
94 | io Ido 100% (52/52) 100% (52/52) 100% (52/52)
95 | is Icelandic 100% (70/70) 100% (70/70) 100% (70/70)
96 | it Italian 100% (72/72) 100% (72/72) 100% (72/72)
97 | iu Inuktitut 100% (161/161) (0/161) (0/161)
98 | ja Japanese (0/2314) (0/2314) (0/2314)
99 | jv Javanese 100% (56/56) 100% (56/56) 100% (56/56)
100 | ka Georgian 100% (33/33) 100% (33/33) 100% (33/33)
101 | kaa Kara-Kalpak (Karakalpak) 100% (78/78) 100% (78/78) 100% (78/78)
102 | kab Kabyle 100% (70/70) 100% (70/70) 100% (70/70)
103 | ki Kikuyu 100% (56/56) 100% (56/56) 100% (56/56)
104 | kj Kuanyama/Kwanyama 100% (52/52) 100% (52/52) 100% (52/52)
105 | kk Kazakh 100% (77/77) 100% (77/77) 100% (77/77)
106 | kl Greenlandic 100% (81/81) 100% (81/81) 100% (81/81)
107 | km Central Khmer (0/63) (0/63) (0/63)
108 | kn Kannada (0/70) (0/70) (0/70)
109 | ko Korean (0/2442) (0/2442) (0/2442)
110 | kok Kokani (Devanagari script) (0/68) (0/68) (0/68)
111 | kr Kanuri 100% (56/56) 100% (56/56) 100% (56/56)
112 | ks Kashmiri 78% (26/33) (0/33) 69% (23/33)
113 | ku-am Kurdish in Armenia 100% (64/64) 100% (64/64) 100% (64/64)
114 | ku-iq Kurdish in Iraq 100% (32/32) (0/32) 87% (28/32)
115 | ku-ir Kurdish in Iran 100% (32/32) (0/32) 87% (28/32)
116 | ku-tr Kurdish in Turkey 100% (62/62) 100% (62/62) 100% (62/62)
117 | kum Kumyk 100% (66/66) 100% (66/66) 100% (66/66)
118 | kv Komi (Komi-Permyak/Komi-Siryan) 100% (70/70) 100% (70/70) 100% (70/70)
119 | kw Cornish 100% (64/64) 100% (64/64) 100% (64/64)
120 | kwm Kwambi 100% (52/52) 100% (52/52) 100% (52/52)
121 | ky Kirgiz 100% (70/70) 100% (70/70) 100% (70/70)
122 | la Latin 100% (68/68) 100% (68/68) 100% (68/68)
123 | lah Lahnda 92% (25/27) (0/27) 85% (23/27)
124 | lb Luxembourgish (Letzeburgesch) 100% (75/75) 100% (75/75) 100% (75/75)
125 | lez Lezghian (Lezgian) 100% (67/67) 100% (67/67) 100% (67/67)
126 | lg Ganda 100% (54/54) 100% (54/54) 100% (54/54)
127 | li Limburgan/Limburger/Limburgish 100% (62/62) 100% (62/62) 100% (62/62)
128 | ln Lingala 100% (81/81) 100% (81/81) 100% (81/81)
129 | lo Lao 100% (55/55) (0/55) 83% (46/55)
130 | lt Lithuanian 100% (70/70) 100% (70/70) 100% (70/70)
131 | lv Latvian 100% (78/78) 100% (78/78) 100% (78/78)
132 | mai Maithili (Devanagari script) (0/68) (0/68) (0/68)
133 | mg Malagasy 100% (56/56) 100% (56/56) 100% (56/56)
134 | mh Marshallese 100% (62/62) 100% (62/62) 100% (62/62)
135 | mi Maori 100% (64/64) 100% (64/64) 100% (64/64)
136 | mk Macedonian 100% (42/42) 100% (42/42) 100% (42/42)
137 | ml Malayalam (0/68) (0/68) (0/68)
138 | mn-cn Mongolian in China (0/130) (0/130) (0/130)
139 | mn-mn Mongolian in Mongolia 100% (70/70) 100% (70/70) 100% (70/70)
140 | mni Maniputi (0/78) (0/78) (0/78)
141 | mo Moldavian 100% (128/128) 100% (128/128) 100% (128/128)
142 | mr Marathi (Devanagari script) (0/68) (0/68) (0/68)
143 | ms Malay 100% (52/52) 100% (52/52) 100% (52/52)
144 | mt Maltese 100% (72/72) 100% (72/72) 100% (72/72)
145 | my Burmese (Myanmar) (0/48) (0/48) (0/48)
146 | na Nauru 100% (60/60) 100% (60/60) 100% (60/60)
147 | nb Norwegian Bokmal 100% (70/70) 100% (70/70) 100% (70/70)
148 | nds Low Saxon 100% (59/59) 100% (59/59) 100% (59/59)
149 | ne Nepali (0/72) (0/72) (0/72)
150 | ng Ndonga 100% (52/52) 100% (52/52) 100% (52/52)
151 | nl Dutch 100% (82/82) 100% (82/82) 100% (82/82)
152 | nn Norwegian Nynorsk 100% (76/76) 100% (76/76) 100% (76/76)
153 | no Norwegian (Bokmal) 100% (70/70) 100% (70/70) 100% (70/70)
154 | nqo N'Ko 91% (54/59) (0/59) (0/59)
155 | nr Ndebele, South 100% (52/52) 100% (52/52) 100% (52/52)
156 | nso Northern Sotho 100% (58/58) 100% (58/58) 100% (58/58)
157 | nv Navajo/Navaho 100% (72/72) 100% (72/72) 100% (72/72)
158 | ny Chichewa 100% (54/54) 100% (54/54) 100% (54/54)
159 | oc Occitan 100% (70/70) 100% (70/70) 100% (70/70)
160 | om Oromo or Galla 100% (52/52) 100% (52/52) 100% (52/52)
161 | or Oriya (0/68) (0/68) (0/68)
162 | os Ossetic 100% (66/66) 100% (66/66) 100% (66/66)
163 | ota Ottoman Turkish 100% (37/37) (0/37) 97% (36/37)
164 | pa Panjabi/Punjabi (0/63) (0/63) (0/63)
165 | pa-pk Panjabi/Punjabi in Pakistan 92% (25/27) (0/27) 85% (23/27)
166 | pap-an Papiamento in Netherlands Antilles 100% (72/72) 100% (72/72) 100% (72/72)
167 | pap-aw Papiamento in Aruba 100% (54/54) 100% (54/54) 100% (54/54)
168 | pes Western Farsi 100% (40/40) (0/40) 100% (40/40)
169 | pl Polish 100% (70/70) 100% (70/70) 100% (70/70)
170 | prs Dari/Eastern Farsi 100% (40/40) (0/40) 100% (40/40)
171 | ps-af Pashto in Afghanistan 97% (48/49) (0/49) 77% (38/49)
172 | ps-pk Pashto in Pakistan 95% (47/49) (0/49) 75% (37/49)
173 | pt Portuguese 100% (82/82) 100% (82/82) 100% (82/82)
174 | qu Quechua 100% (55/55) 100% (55/55) 100% (55/55)
175 | quz Cusco Quechua 100% (55/55) 100% (55/55) 100% (55/55)
176 | rm Rhaeto-Romance (Romansch) 100% (66/66) 100% (66/66) 100% (66/66)
177 | rn Rundi 100% (52/52) 100% (52/52) 100% (52/52)
178 | ro Romanian 100% (62/62) 100% (62/62) 100% (62/62)
179 | ru Russian 100% (66/66) 100% (66/66) 100% (66/66)
180 | rw Kinyarwanda 100% (52/52) 100% (52/52) 100% (52/52)
181 | sa Sanskrit (Devanagari script) (0/68) (0/68) (0/68)
182 | sah Yakut 100% (76/76) 100% (76/76) 100% (76/76)
183 | sat Santali (Devanagari script) (0/70) (0/70) (0/70)
184 | sc Sardinian 100% (62/62) 100% (62/62) 100% (62/62)
185 | sco Scots 100% (56/56) 100% (56/56) 100% (56/56)
186 | sd Sindhi 100% (54/54) (0/54) 79% (43/54)
187 | se North Sami 100% (66/66) 100% (66/66) 100% (66/66)
188 | sel Selkup (Ostyak-Samoyed) 100% (66/66) 100% (66/66) 100% (66/66)
189 | sg Sango 100% (72/72) 100% (72/72) 100% (72/72)
190 | sh Serbo-Croatian 100% (156/156) 100% (156/156) 98% (154/156)
191 | shs Secwepemctsin 100% (48/48) 100% (48/48) 100% (48/48)
192 | si Sinhala/Sinhalese (0/73) (0/73) (0/73)
193 | sid Sidamo (0/281) (0/281) (0/281)
194 | sk Slovak 100% (86/86) 100% (86/86) 100% (86/86)
195 | sl Slovenian 100% (62/62) 100% (62/62) 100% (62/62)
196 | sm Samoan 100% (53/53) 100% (53/53) 100% (53/53)
197 | sma South Sami 100% (60/60) 100% (60/60) 100% (60/60)
198 | smj Lule Sami 100% (60/60) 100% (60/60) 100% (60/60)
199 | smn Inari Sami 100% (68/68) 100% (68/68) 100% (68/68)
200 | sms Skolt Sami 100% (80/80) 100% (80/80) 97% (78/80)
201 | sn Shona 100% (52/52) 100% (52/52) 100% (52/52)
202 | so Somali 100% (52/52) 100% (52/52) 100% (52/52)
203 | sq Albanian 100% (56/56) 100% (56/56) 100% (56/56)
204 | sr Serbian 100% (60/60) 100% (60/60) 100% (60/60)
205 | ss Swati 100% (52/52) 100% (52/52) 100% (52/52)
206 | st Sotho, Southern 100% (52/52) 100% (52/52) 100% (52/52)
207 | su Sundanese 100% (54/54) 100% (54/54) 100% (54/54)
208 | sv Swedish 100% (68/68) 100% (68/68) 100% (68/68)
209 | sw Swahili 100% (52/52) 100% (52/52) 100% (52/52)
210 | syr Syriac (0/45) (0/45) (0/45)
211 | ta Tamil (0/48) (0/48) (0/48)
212 | te Telugu (0/70) (0/70) (0/70)
213 | tg Tajik 100% (78/78) 100% (78/78) 97% (76/78)
214 | th Thai 1% (1/74) 1% (1/74) 1% (1/74)
215 | ti-er Eritrean Tigrinya (0/255) (0/255) (0/255)
216 | ti-et Ethiopian Tigrinya (0/281) (0/281) (0/281)
217 | tig Tigre (0/221) (0/221) (0/221)
218 | tk Turkmen 100% (68/68) 100% (68/68) 100% (68/68)
219 | tl Tagalog 100% (84/84) 100% (84/84) 100% (84/84)
220 | tn Tswana 100% (58/58) 100% (58/58) 100% (58/58)
221 | to Tonga 100% (53/53) 100% (53/53) 100% (53/53)
222 | tr Turkish 100% (70/70) 100% (70/70) 100% (70/70)
223 | ts Tsonga 100% (52/52) 100% (52/52) 100% (52/52)
224 | tt Tatar 100% (76/76) 100% (76/76) 100% (76/76)
225 | tw Twi 100% (73/73) 100% (73/73) 100% (73/73)
226 | ty Tahitian 100% (65/65) 100% (65/65) 100% (65/65)
227 | tyv Tuvinian 100% (70/70) 100% (70/70) 100% (70/70)
228 | ug Uyghur 100% (33/33) (0/33) 78% (26/33)
229 | uk Ukrainian 100% (72/72) 100% (72/72) 100% (72/72)
230 | ur Urdu 92% (25/27) (0/27) 85% (23/27)
231 | uz Uzbek 100% (52/52) 100% (52/52) 100% (52/52)
232 | ve Venda 100% (62/62) 100% (62/62) 100% (62/62)
233 | vi Vietnamese 100% (194/194) 100% (194/194) 76% (148/194)
234 | vo Volapuk 100% (54/54) 100% (54/54) 100% (54/54)
235 | vot Votic 100% (62/62) 100% (62/62) 100% (62/62)
236 | wa Walloon 100% (70/70) 100% (70/70) 100% (70/70)
237 | wal Wolaitta/Wolaytta (0/281) (0/281) (0/281)
238 | wen Sorbian languages (lower and upper) 100% (76/76) 100% (76/76) 100% (76/76)
239 | wo Wolof 100% (66/66) 100% (66/66) 100% (66/66)
240 | xh Xhosa 100% (52/52) 100% (52/52) 100% (52/52)
241 | yap Yapese 100% (58/58) 100% (58/58) 100% (58/58)
242 | yi Yiddish 100% (27/27) (0/27) (0/27)
243 | yo Yoruba 100% (119/119) 100% (119/119) 100% (119/119)
244 | za Zhuang/Chuang 100% (52/52) 100% (52/52) 100% (52/52)
245 | zh-cn Chinese (simplified) 0% (2/6765) 0% (2/6765) 0% (2/6765)
246 | zh-hk Chinese Hong Kong Supplementary Character Set (0/1083) (0/1083) (0/1083)
247 | zh-mo Chinese in Macau (0/1083) (0/1083) (0/1083)
248 | zh-sg Chinese in Singapore 0% (2/6765) 0% (2/6765) 0% (2/6765)
249 | zh-tw Chinese (traditional) (0/13063) (0/13063) (0/13063)
250 | zu Zulu 100% (52/52) 100% (52/52) 100% (52/52)
251 |
--------------------------------------------------------------------------------
/fonts/dejavu-fonts-ttf-2.37/unicover.txt:
--------------------------------------------------------------------------------
1 | This is the Unicode coverage file for DejaVu fonts
2 | ($Id$)
3 |
4 | Control and similar characters are discounted from totals.
5 |
6 | Sans Serif Sans Mono
7 | U+0000 Basic Latin 100% (95/95) 100% (95/95) 100% (95/95)
8 | U+0080 Latin-1 Supplement 100% (96/96) 100% (96/96) 100% (96/96)
9 | U+0100 Latin Extended-A 100% (128/128) 100% (128/128) 100% (128/128)
10 | U+0180 Latin Extended-B 100% (208/208) 100% (208/208) 86% (180/208)
11 | U+0250 IPA Extensions 100% (96/96) 100% (96/96) 100% (96/96)
12 | U+02b0 Spacing Modifier Letters 78% (63/80) 73% (59/80) 62% (50/80)
13 | U+0300 Combining Diacritical Marks 83% (93/112) 61% (69/112) 59% (67/112)
14 | U+0370 Greek and Coptic 100% (135/135) 89% (121/135) 85% (116/135)
15 | U+0400 Cyrillic 100% (256/256) 79% (204/256) 70% (180/256)
16 | U+0500 Cyrillic Supplement 79% (38/48) 20% (10/48) 12% (6/48)
17 | U+0530 Armenian 96% (86/89) 96% (86/89) 96% (86/89)
18 | U+0590 Hebrew 62% (54/87) (0/87) (0/87)
19 | U+0600 Arabic 64% (165/255) (0/255) 38% (99/255)
20 | U+0700 Syriac (0/77) (0/77) (0/77)
21 | U+0750 Arabic Supplement (0/48) (0/48) (0/48)
22 | U+0780 Thaana (0/50) (0/50) (0/50)
23 | U+07c0 NKo 91% (54/59) (0/59) (0/59)
24 | U+0800 Samaritan (0/61) (0/61) (0/61)
25 | U+0840 Mandaic (0/29) (0/29) (0/29)
26 | U+08a0 Arabic Extended-A (0/73) (0/73) (0/73)
27 | U+0900 Devanagari (0/128) (0/128) (0/128)
28 | U+0980 Bengali (0/93) (0/93) (0/93)
29 | U+0a00 Gurmukhi (0/79) (0/79) (0/79)
30 | U+0a80 Gujarati (0/85) (0/85) (0/85)
31 | U+0b00 Oriya (0/90) (0/90) (0/90)
32 | U+0b80 Tamil (0/72) (0/72) (0/72)
33 | U+0c00 Telugu (0/96) (0/96) (0/96)
34 | U+0c80 Kannada (0/88) (0/88) (0/88)
35 | U+0d00 Malayalam (0/114) (0/114) (0/114)
36 | U+0d80 Sinhala (0/90) (0/90) (0/90)
37 | U+0e00 Thai 1% (1/87) 1% (1/87) 1% (1/87)
38 | U+0e80 Lao 97% (65/67) (0/67) 68% (46/67)
39 | U+0f00 Tibetan (0/211) (0/211) (0/211)
40 | U+1000 Myanmar (0/160) (0/160) (0/160)
41 | U+10a0 Georgian 94% (83/88) 94% (83/88) 51% (45/88)
42 | U+1100 Hangul Jamo (0/256) (0/256) (0/256)
43 | U+1200 Ethiopic (0/358) (0/358) (0/358)
44 | U+1380 Ethiopic Supplement (0/26) (0/26) (0/26)
45 | U+13a0 Cherokee (0/92) (0/92) (0/92)
46 | U+1400 Unified Canadian Aboriginal Syllabics 63% (404/640) (0/640) (0/640)
47 | U+1680 Ogham 100% (29/29) (0/29) (0/29)
48 | U+16a0 Runic (0/89) (0/89) (0/89)
49 | U+1700 Tagalog (0/20) (0/20) (0/20)
50 | U+1720 Hanunoo (0/23) (0/23) (0/23)
51 | U+1740 Buhid (0/20) (0/20) (0/20)
52 | U+1760 Tagbanwa (0/18) (0/18) (0/18)
53 | U+1780 Khmer (0/114) (0/114) (0/114)
54 | U+1800 Mongolian (0/156) (0/156) (0/156)
55 | U+18b0 Unified Canadian Aboriginal Syllabics Extended (0/70) (0/70) (0/70)
56 | U+1900 Limbu (0/68) (0/68) (0/68)
57 | U+1950 Tai Le (0/35) (0/35) (0/35)
58 | U+1980 New Tai Lue (0/83) (0/83) (0/83)
59 | U+19e0 Khmer Symbols (0/32) (0/32) (0/32)
60 | U+1a00 Buginese (0/30) (0/30) (0/30)
61 | U+1a20 Tai Tham (0/127) (0/127) (0/127)
62 | U+1ab0 Combining Diacritical Marks Extended (0/15) (0/15) (0/15)
63 | U+1b00 Balinese (0/121) (0/121) (0/121)
64 | U+1b80 Sundanese (0/64) (0/64) (0/64)
65 | U+1bc0 Batak (0/56) (0/56) (0/56)
66 | U+1c00 Lepcha (0/74) (0/74) (0/74)
67 | U+1c50 Ol Chiki (0/48) (0/48) (0/48)
68 | U+1c80 Cyrillic Extended-C (0/9) (0/9) (0/9)
69 | U+1cc0 Sundanese Supplement (0/8) (0/8) (0/8)
70 | U+1cd0 Vedic Extensions (0/41) (0/41) (0/41)
71 | U+1d00 Phonetic Extensions 82% (106/128) 89% (115/128) 48% (62/128)
72 | U+1d80 Phonetic Extensions Supplement 59% (38/64) 59% (38/64) 57% (37/64)
73 | U+1dc0 Combining Diacritical Marks Supplement 10% (6/59) 10% (6/59) (0/59)
74 | U+1e00 Latin Extended Additional 98% (252/256) 98% (252/256) 71% (182/256)
75 | U+1f00 Greek Extended 100% (233/233) 100% (233/233) 100% (233/233)
76 | U+2000 General Punctuation 96% (107/111) 78% (87/111) 48% (54/111)
77 | U+2070 Superscripts and Subscripts 100% (42/42) 100% (42/42) 100% (42/42)
78 | U+20a0 Currency Symbols 83% (26/31) 32% (10/31) 83% (26/31)
79 | U+20d0 Combining Diacritical Marks for Symbols 21% (7/33) (0/33) (0/33)
80 | U+2100 Letterlike Symbols 93% (75/80) 42% (34/80) 22% (18/80)
81 | U+2150 Number Forms 91% (55/60) 91% (55/60) 26% (16/60)
82 | U+2190 Arrows 100% (112/112) 100% (112/112) 100% (112/112)
83 | U+2200 Mathematical Operators 100% (256/256) 39% (101/256) 69% (178/256)
84 | U+2300 Miscellaneous Technical 25% (65/255) 14% (36/255) 53% (136/255)
85 | U+2400 Control Pictures 5% (2/39) 2% (1/39) 2% (1/39)
86 | U+2440 Optical Character Recognition (0/11) (0/11) (0/11)
87 | U+2460 Enclosed Alphanumerics 6% (10/160) (0/160) (0/160)
88 | U+2500 Box Drawing 100% (128/128) 100% (128/128) 100% (128/128)
89 | U+2580 Block Elements 100% (32/32) 100% (32/32) 100% (32/32)
90 | U+25a0 Geometric Shapes 100% (96/96) 100% (96/96) 100% (96/96)
91 | U+2600 Miscellaneous Symbols 73% (189/256) 11% (30/256) 58% (149/256)
92 | U+2700 Dingbats 90% (174/192) 0% (1/192) 75% (144/192)
93 | U+27c0 Miscellaneous Mathematical Symbols-A 18% (9/48) 10% (5/48) 22% (11/48)
94 | U+27f0 Supplemental Arrows-A 100% (16/16) 100% (16/16) 18% (3/16)
95 | U+2800 Braille Patterns 100% (256/256) 100% (256/256) (0/256)
96 | U+2900 Supplemental Arrows-B 4% (6/128) 100% (128/128) (0/128)
97 | U+2980 Miscellaneous Mathematical Symbols-B 10% (13/128) 0% (1/128) 5% (7/128)
98 | U+2a00 Supplemental Mathematical Operators 28% (74/256) 2% (6/256) 1% (4/256)
99 | U+2b00 Miscellaneous Symbols and Arrows 16% (35/206) 13% (27/206) 8% (18/206)
100 | U+2c00 Glagolitic (0/94) (0/94) (0/94)
101 | U+2c60 Latin Extended-C 96% (31/32) 84% (27/32) 43% (14/32)
102 | U+2c80 Coptic (0/123) (0/123) (0/123)
103 | U+2d00 Georgian Supplement 95% (38/40) 95% (38/40) (0/40)
104 | U+2d30 Tifinagh 93% (55/59) (0/59) (0/59)
105 | U+2d80 Ethiopic Extended (0/79) (0/79) (0/79)
106 | U+2de0 Cyrillic Extended-A (0/32) (0/32) (0/32)
107 | U+2e00 Supplemental Punctuation 10% (7/69) 10% (7/69) 10% (7/69)
108 | U+2e80 CJK Radicals Supplement (0/115) (0/115) (0/115)
109 | U+2f00 Kangxi Radicals (0/214) (0/214) (0/214)
110 | U+2ff0 Ideographic Description Characters (0/12) (0/12) (0/12)
111 | U+3000 CJK Symbols and Punctuation (0/64) (0/64) (0/64)
112 | U+3040 Hiragana (0/93) (0/93) (0/93)
113 | U+30a0 Katakana (0/96) (0/96) (0/96)
114 | U+3100 Bopomofo (0/41) (0/41) (0/41)
115 | U+3130 Hangul Compatibility Jamo (0/94) (0/94) (0/94)
116 | U+3190 Kanbun (0/16) (0/16) (0/16)
117 | U+31a0 Bopomofo Extended (0/27) (0/27) (0/27)
118 | U+31c0 CJK Strokes (0/36) (0/36) (0/36)
119 | U+31f0 Katakana Phonetic Extensions (0/16) (0/16) (0/16)
120 | U+3200 Enclosed CJK Letters and Months (0/254) (0/254) (0/254)
121 | U+3300 CJK Compatibility (0/256) (0/256) (0/256)
122 | U+3400 CJK Unified Ideographs Extension A (0/0) (0/0) (0/0)
123 | U+4dc0 Yijing Hexagram Symbols 100% (64/64) (0/64) (0/64)
124 | U+4e00 CJK Unified Ideographs (0/0) (0/0) (0/0)
125 | U+a000 Yi Syllables (0/1165) (0/1165) (0/1165)
126 | U+a490 Yi Radicals (0/55) (0/55) (0/55)
127 | U+a4d0 Lisu 100% (48/48) (0/48) (0/48)
128 | U+a500 Vai (0/300) (0/300) (0/300)
129 | U+a640 Cyrillic Extended-B 34% (33/96) 12% (12/96) (0/96)
130 | U+a6a0 Bamum (0/88) (0/88) (0/88)
131 | U+a700 Modifier Tone Letters 62% (20/32) 62% (20/32) 62% (20/32)
132 | U+a720 Latin Extended-D 48% (77/160) 37% (60/160) 10% (17/160)
133 | U+a800 Syloti Nagri (0/44) (0/44) (0/44)
134 | U+a830 Common Indic Number Forms (0/10) (0/10) (0/10)
135 | U+a840 Phags-pa (0/56) (0/56) (0/56)
136 | U+a880 Saurashtra (0/82) (0/82) (0/82)
137 | U+a8e0 Devanagari Extended (0/30) (0/30) (0/30)
138 | U+a900 Kayah Li (0/48) (0/48) (0/48)
139 | U+a930 Rejang (0/37) (0/37) (0/37)
140 | U+a960 Hangul Jamo Extended-A (0/29) (0/29) (0/29)
141 | U+a980 Javanese (0/91) (0/91) (0/91)
142 | U+a9e0 Myanmar Extended-B (0/31) (0/31) (0/31)
143 | U+aa00 Cham (0/83) (0/83) (0/83)
144 | U+aa60 Myanmar Extended-A (0/32) (0/32) (0/32)
145 | U+aa80 Tai Viet (0/72) (0/72) (0/72)
146 | U+aae0 Meetei Mayek Extensions (0/23) (0/23) (0/23)
147 | U+ab00 Ethiopic Extended-A (0/32) (0/32) (0/32)
148 | U+ab30 Latin Extended-E (0/54) (0/54) (0/54)
149 | U+ab70 Cherokee Supplement (0/80) (0/80) (0/80)
150 | U+abc0 Meetei Mayek (0/56) (0/56) (0/56)
151 | U+ac00 Hangul Syllables (0/0) (0/0) (0/0)
152 | U+d7b0 Hangul Jamo Extended-B (0/72) (0/72) (0/72)
153 | U+d800 High Surrogates (0/0) (0/0) (0/0)
154 | U+db80 High Private Use Surrogates (0/0) (0/0) (0/0)
155 | U+dc00 Low Surrogates (0/0) (0/0) (0/0)
156 | U+e000 Private Use Area (0/0) (0/0) (0/0)
157 | U+f900 CJK Compatibility Ideographs (0/472) (0/472) (0/472)
158 | U+fb00 Alphabetic Presentation Forms 100% (58/58) 12% (7/58) 3% (2/58)
159 | U+fb50 Arabic Presentation Forms-A 17% (108/611) (0/611) 11% (72/611)
160 | U+fe00 Variation Selectors 100% (16/16) 100% (16/16) (0/16)
161 | U+fe10 Vertical Forms (0/10) (0/10) (0/10)
162 | U+fe20 Combining Half Marks 25% (4/16) (0/16) (0/16)
163 | U+fe30 CJK Compatibility Forms (0/32) (0/32) (0/32)
164 | U+fe50 Small Form Variants (0/26) (0/26) (0/26)
165 | U+fe70 Arabic Presentation Forms-B 100% (141/141) (0/141) 100% (141/141)
166 | U+ff00 Halfwidth and Fullwidth Forms (0/225) (0/225) (0/225)
167 | U+fff0 Specials 100% (5/5) 100% (5/5) 100% (5/5)
168 | U+10000 Linear B Syllabary (0/88) (0/88) (0/88)
169 | U+10080 Linear B Ideograms (0/123) (0/123) (0/123)
170 | U+10100 Aegean Numbers (0/57) (0/57) (0/57)
171 | U+10140 Ancient Greek Numbers (0/79) (0/79) (0/79)
172 | U+10190 Ancient Symbols (0/13) (0/13) (0/13)
173 | U+101d0 Phaistos Disc (0/46) (0/46) (0/46)
174 | U+10280 Lycian (0/29) (0/29) (0/29)
175 | U+102a0 Carian (0/49) (0/49) (0/49)
176 | U+102e0 Coptic Epact Numbers (0/28) (0/28) (0/28)
177 | U+10300 Old Italic 97% (35/36) (0/36) (0/36)
178 | U+10330 Gothic (0/27) (0/27) (0/27)
179 | U+10350 Old Permic (0/43) (0/43) (0/43)
180 | U+10380 Ugaritic (0/31) (0/31) (0/31)
181 | U+103a0 Old Persian (0/50) (0/50) (0/50)
182 | U+10400 Deseret (0/80) (0/80) (0/80)
183 | U+10450 Shavian (0/48) (0/48) (0/48)
184 | U+10480 Osmanya (0/40) (0/40) (0/40)
185 | U+104b0 Osage (0/72) (0/72) (0/72)
186 | U+10500 Elbasan (0/40) (0/40) (0/40)
187 | U+10530 Caucasian Albanian (0/53) (0/53) (0/53)
188 | U+10600 Linear A (0/341) (0/341) (0/341)
189 | U+10800 Cypriot Syllabary (0/55) (0/55) (0/55)
190 | U+10840 Imperial Aramaic (0/31) (0/31) (0/31)
191 | U+10860 Palmyrene (0/32) (0/32) (0/32)
192 | U+10880 Nabataean (0/40) (0/40) (0/40)
193 | U+108e0 Hatran (0/26) (0/26) (0/26)
194 | U+10900 Phoenician (0/29) (0/29) (0/29)
195 | U+10920 Lydian (0/27) (0/27) (0/27)
196 | U+10980 Meroitic Hieroglyphs (0/32) (0/32) (0/32)
197 | U+109a0 Meroitic Cursive (0/90) (0/90) (0/90)
198 | U+10a00 Kharoshthi (0/65) (0/65) (0/65)
199 | U+10a60 Old South Arabian (0/32) (0/32) (0/32)
200 | U+10a80 Old North Arabian (0/32) (0/32) (0/32)
201 | U+10ac0 Manichaean (0/51) (0/51) (0/51)
202 | U+10b00 Avestan (0/61) (0/61) (0/61)
203 | U+10b40 Inscriptional Parthian (0/30) (0/30) (0/30)
204 | U+10b60 Inscriptional Pahlavi (0/27) (0/27) (0/27)
205 | U+10b80 Psalter Pahlavi (0/29) (0/29) (0/29)
206 | U+10c00 Old Turkic (0/73) (0/73) (0/73)
207 | U+10c80 Old Hungarian (0/108) (0/108) (0/108)
208 | U+10e60 Rumi Numeral Symbols (0/31) (0/31) (0/31)
209 | U+11000 Brahmi (0/109) (0/109) (0/109)
210 | U+11080 Kaithi (0/66) (0/66) (0/66)
211 | U+110d0 Sora Sompeng (0/35) (0/35) (0/35)
212 | U+11100 Chakma (0/67) (0/67) (0/67)
213 | U+11150 Mahajani (0/39) (0/39) (0/39)
214 | U+11180 Sharada (0/94) (0/94) (0/94)
215 | U+111e0 Sinhala Archaic Numbers (0/20) (0/20) (0/20)
216 | U+11200 Khojki (0/62) (0/62) (0/62)
217 | U+11280 Multani (0/38) (0/38) (0/38)
218 | U+112b0 Khudawadi (0/69) (0/69) (0/69)
219 | U+11300 Grantha (0/85) (0/85) (0/85)
220 | U+11400 Newa (0/92) (0/92) (0/92)
221 | U+11480 Tirhuta (0/82) (0/82) (0/82)
222 | U+11580 Siddham (0/92) (0/92) (0/92)
223 | U+11600 Modi (0/79) (0/79) (0/79)
224 | U+11660 Mongolian Supplement (0/13) (0/13) (0/13)
225 | U+11680 Takri (0/66) (0/66) (0/66)
226 | U+11700 Ahom (0/57) (0/57) (0/57)
227 | U+118a0 Warang Citi (0/84) (0/84) (0/84)
228 | U+11ac0 Pau Cin Hau (0/57) (0/57) (0/57)
229 | U+11c00 Bhaiksuki (0/97) (0/97) (0/97)
230 | U+11c70 Marchen (0/68) (0/68) (0/68)
231 | U+12000 Cuneiform (0/922) (0/922) (0/922)
232 | U+12400 Cuneiform Numbers and Punctuation (0/116) (0/116) (0/116)
233 | U+12480 Early Dynastic Cuneiform (0/196) (0/196) (0/196)
234 | U+13000 Egyptian Hieroglyphs (0/1071) (0/1071) (0/1071)
235 | U+14400 Anatolian Hieroglyphs (0/583) (0/583) (0/583)
236 | U+16800 Bamum Supplement (0/569) (0/569) (0/569)
237 | U+16a40 Mro (0/43) (0/43) (0/43)
238 | U+16ad0 Bassa Vah (0/36) (0/36) (0/36)
239 | U+16b00 Pahawh Hmong (0/127) (0/127) (0/127)
240 | U+16f00 Miao (0/133) (0/133) (0/133)
241 | U+16fe0 Ideographic Symbols and Punctuation (0/1) (0/1) (0/1)
242 | U+17000 Tangut (0/0) (0/0) (0/0)
243 | U+18800 Tangut Components (0/755) (0/755) (0/755)
244 | U+1b000 Kana Supplement (0/2) (0/2) (0/2)
245 | U+1bc00 Duployan (0/143) (0/143) (0/143)
246 | U+1bca0 Shorthand Format Controls (0/4) (0/4) (0/4)
247 | U+1d000 Byzantine Musical Symbols (0/246) (0/246) (0/246)
248 | U+1d100 Musical Symbols (0/231) (0/231) (0/231)
249 | U+1d200 Ancient Greek Musical Notation (0/70) (0/70) (0/70)
250 | U+1d300 Tai Xuan Jing Symbols 100% (87/87) (0/87) (0/87)
251 | U+1d360 Counting Rod Numerals (0/18) (0/18) (0/18)
252 | U+1d400 Mathematical Alphanumeric Symbols 11% (117/996) 10% (108/996) 6% (63/996)
253 | U+1d800 Sutton SignWriting (0/672) (0/672) (0/672)
254 | U+1e000 Glagolitic Supplement (0/38) (0/38) (0/38)
255 | U+1e800 Mende Kikakui (0/213) (0/213) (0/213)
256 | U+1e900 Adlam (0/87) (0/87) (0/87)
257 | U+1ee00 Arabic Mathematical Alphabetic Symbols 51% (74/143) (0/143) (0/143)
258 | U+1f000 Mahjong Tiles (0/44) (0/44) (0/44)
259 | U+1f030 Domino Tiles 100% (100/100) (0/100) (0/100)
260 | U+1f0a0 Playing Cards 71% (59/82) (0/82) (0/82)
261 | U+1f100 Enclosed Alphanumeric Supplement (0/191) (0/191) (0/191)
262 | U+1f200 Enclosed Ideographic Supplement (0/58) (0/58) (0/58)
263 | U+1f300 Miscellaneous Symbols and Pictographs 1% (12/768) (0/768) (0/768)
264 | U+1f600 Emoticons 80% (64/80) (0/80) (0/80)
265 | U+1f650 Ornamental Dingbats (0/48) (0/48) (0/48)
266 | U+1f680 Transport and Map Symbols (0/103) (0/103) (0/103)
267 | U+1f700 Alchemical Symbols (0/116) (0/116) (0/116)
268 | U+1f780 Geometric Shapes Extended (0/85) (0/85) (0/85)
269 | U+1f800 Supplemental Arrows-C (0/148) (0/148) (0/148)
270 | U+1f900 Supplemental Symbols and Pictographs (0/82) (0/82) (0/82)
271 | U+20000 CJK Unified Ideographs Extension B (0/0) (0/0) (0/0)
272 | U+2a700 CJK Unified Ideographs Extension C (0/0) (0/0) (0/0)
273 | U+2b740 CJK Unified Ideographs Extension D (0/0) (0/0) (0/0)
274 | U+2b820 CJK Unified Ideographs Extension E (0/0) (0/0) (0/0)
275 | U+2f800 CJK Compatibility Ideographs Supplement (0/542) (0/542) (0/542)
276 | U+e0000 Tags (0/98) (0/98) (0/98)
277 | U+e0100 Variation Selectors Supplement (0/240) (0/240) (0/240)
278 | U+f0000 Supplementary Private Use Area-A (0/0) (0/0) (0/0)
279 | U+100000 Supplementary Private Use Area-B (0/0) (0/0) (0/0)
280 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Graph-PHP Graph charts in PHP
2 | graph charts, graph bars, histograms, graph lines, scratter, marks
3 |
4 | # V 1.0.1
5 |
6 | ## CREATE GRAPHS IN PHP:
7 | You can create graphs charts with bars, graphs lines with marks, graphs with background images, histograms, ....
8 |
9 | # SCREENSHOTS:
10 | 
11 |
12 | Nice line graph display with markers
13 |
14 | 
15 |
16 | Graph Bars & lines
17 |
18 | 
19 |
20 | Nice Math line graph
21 |
22 | And now some group of samples:
23 |
24 | 
25 | 
26 | 
27 |
28 |
29 |
30 | # REQUERIMENTS:
31 |
32 | Requires packages:
33 |
34 | img2img (https://github.com/vivesweb/img2img)
35 |
36 | ext-op-ml-php (https://github.com/vivesweb/ext_op_ml)
37 |
38 | Requires DeJaVu Fonts: (https://travis-ci.org/dejavu-fonts/dejavu-fonts)
39 |
40 | - A minimum (minimum, minimum, minimum requeriments is needed). Tested on:
41 |
42 | - Simple Raspberry pi (B + 512MB 700 MHz ARM11) with Raspbian Lite PHP7.3 (i love this gadgets) :heart_eyes:
43 |
44 | - VirtualBox Ubuntu Server 20.04.2 LTS (Focal Fossa) with PHP7.4.3
45 |
46 | - Red Hat Enterprise Linux Server release 6.10 (Santiago) PHP Version 7.3.25 (Production Server) 512Mb Memory Limit
47 |
48 | - Red Hat Enterprise Linux release 8.4 (Ootpa). PHP Version 8.0.11 (Production Server) 512Mb Memory Limit
49 |
50 | # SERVER REQUERIMENTS:
51 |
52 | - PHP with GD enabled: sudo apt install php-gd
53 |
54 | - img2img class: If you need to use IMG_FILTER_SCATTER you need at least PHP >= PHP7.4.0. See official doc: https://www.php.net/manual/en/function.imagefilter.php
55 |
56 | - PHP with Imagick for some functions. It is not required for by most methods, but in some, like reading pdf or psd, you will need it. Install: sudo apt install php-imagick
57 |
58 | - Requires for Instagram background effects: https://github.com/zaachi/PHP-Instagram-effects
59 |
60 |
61 |
62 | # FILES:
63 | *graph-php.class.php* -> **Main File**.
64 |
65 | *example.php* -> **Example File**.
66 |
67 |
68 | # INSTALLATION:
69 | A lot of easy :smiley:. It is written in PURE PHP. Only need to include the files. Tested on basic PHP installation
70 |
71 | require_once( 'graph-php.class.php' );
72 |
73 |
74 | # NOTES:
75 | Before draw the Graph, first we need to prepare values inside (as type bar, lines, etc....)
76 |
77 | # RESUME OF METHODS:
78 |
79 | - **CREATE GRAPH OBJECT:**
80 |
81 | *$graph = new graph( $cfg=null );*
82 |
83 | default $cfg:
84 |
85 | [
86 | 'width' => 6.4, // 6.4 inches
87 | 'height' => 4.8, // 4.8 inches
88 | 'dpi' => 100, // 100 dpis
89 | 'padding' => .6, // 0.6 inches
90 | 'fontdir' => __DIR__.'/fonts',
91 | 'fontfamilypath' => 'dejavu-fonts-ttf-2.37/ttf',
92 | 'font' => 'DejaVuSans.ttf',
93 | 'fontsize' => 10.5,
94 | 'xtickfontsize' => 10.5,
95 | 'ytickfontsize' => 10.5,
96 | 'axes' => [ 'prop_cycle' => []
97 | ],
98 | 'lines' =>
99 | ['width' => 3],
100 | 'values' => [],
101 | 'x_values' => [],
102 | 'y_values' => [],
103 | 'ylabel' => '',
104 | 'xlabel' => '',
105 | 'title' => '',
106 | 'cycler' => [
107 | 'color' => [
108 | 'default' => ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']
109 | ],
110 | 'linestyle' => [ '-', '--', ':', '-.' ]
111 | ],
112 | 'backgroundstyle' => 'solid',
113 | 'backgroundcolor' => '#ffffff',
114 | 'bordertype' => 'square',
115 | 'paddingleft' => .79,
116 | 'paddingright' => .63,
117 | 'paddingtop' => .58,
118 | 'paddingbottom' => .515,
119 | 'paddinginsideleft' => .2,
120 | 'paddinginsideright' => .2,
121 | 'paddinginsidetop' => .15,
122 | 'paddinginsidebottom' => .15,
123 | 'ymarginleftlabel' => 10,
124 | 'xmarginlabelsticks' => 16,
125 | 'ymarginlabelsticks' => 10,
126 | 'xshowlabelticks' => true,
127 | 'yshowlabelticks' => true,
128 | 'margintitle' => 50,
129 | 'x_drawguidelines' => false,
130 | 'y_drawguidelines' => false,
131 | 'centerlabels' => false,
132 | 'bars' => ['percmarginbetwbars' => 20 ],
133 | 'legend' => false,
134 | 'legendmarginleft' => 7,
135 | 'legendmargintop' => 6,
136 | 'legendpaddingleft' => 5,
137 | 'legendpaddingtop' => 1,
138 | 'legendpaddingright' => 5,
139 | 'legendpaddingbottom' => 3,
140 | 'legendwidthlines' => 28,
141 | 'legendlabelheight' => 21,
142 | 'width_marker_x' => 9,
143 | 'height_marker_x' => 9,
144 | 'width_marker_o' => 10,
145 | 'height_marker_o' => 10,
146 | 'xticks' => ['rotation' => 0]
147 |
148 | ]; // /$default_cfg
149 |
150 | Example:
151 |
152 | $graph = new graph();
153 |
154 | - **PREPARE BAR GRAPH:**
155 |
156 | *$graph->bar( $array_values, $arr_values_y_param = null, $cfg = null );*
157 |
158 | This method prepare a serie of values in BAR format. Do not echo the graph. To see how to echo graph, see *output_gd_png_base64()* method.
159 |
160 | $array_values: Values of Axis X
161 |
162 | $arr_values_y_param: Values of Axis Y. If not given, each $array_values will be the Axys Y values and each value will be an index position in Axis X automatically
163 |
164 | $cfg: *see CFG_GRAPH_TYPES
165 |
166 | Example:
167 |
168 | $graph = new graph();
169 | $graph->bar( [1, 2, 3, 4] );
170 | echo '
'; // Echo img raw data in html page
171 |
172 | With this simple code you will generate the most simplest graph:
173 |
174 | 
175 |
176 | Example with x & y values:
177 |
178 | $graph = new graph();
179 | $graph->bar( [10, 20, 30, 40], [1, 4, 9, 16] );
180 | $graph->title("With X & Y Values"); // Set the title of the bar. See title() method
181 | echo '
'; // Echo img raw data in html page
182 |
183 | With this simple code you will generate the most simplest graph:
184 |
185 | 
186 |
187 | - **PREPARE LINE GRAPH:**
188 |
189 | *$graph->plot( $array_values, $arr_values_y_param = null, $cfg = null );*
190 |
191 | This method prepare a serie of values in LINES format. Do not echo the graph. To see how to echo graph, see *output_gd_png_base64()* method.
192 |
193 | $array_values: Values of Axis X
194 |
195 | $arr_values_y_param: Values of Axis Y. If not given, each $array_values will be the Axys Y values and each value will be an index position in Axis X automatically
196 |
197 | $cfg: *see CFG_GRAPH_TYPES
198 |
199 | Example:
200 |
201 | $graph = new graph();
202 | $graph->plot( [1, 1.5, 2, 1.8, 3] );
203 | $graph->title("Simple Plot graph with line"); // Set the title of the bar. See title() method
204 | echo '
'; // Echo img raw data in html page
205 |
206 | With this simple code you will generate the most simplest line graph:
207 |
208 | 
209 |
210 | - **PREPARE MULTILINE GRAPH:**
211 |
212 | You can prepare multilines calling plot() method as many series as you need.
213 |
214 | Example:
215 |
216 | $graph = new graph();
217 | $graph->plot( [1, 1.5, 2, 1.8, 3] );
218 | $graph->plot( [2, 2.8, 1.7, 2, 2.3] );
219 | $graph->title("Multi Line"); // Set the title of the bar. See title() method
220 | echo '
'; // Echo img raw data in html page
221 |
222 | With this simple code you will generate Multiline Graph:
223 |
224 | 
225 |
226 | - **MERGE LINES & BAR GRAPH:**
227 |
228 | You can merge line/multilines & bars calling plot()/bar() method as many series as you need.
229 |
230 | Example:
231 |
232 | $graph = new graph();
233 | $graph->bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17] );
234 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15] );
235 | $graph->title( 'Bar & Line' ); // Set the title of the bar. See title() method
236 | echo '
'; // Echo img raw data in html page
237 |
238 | With this simple code you will generate Line & Bar Graph:
239 |
240 | 
241 |
242 |
243 |
244 | - **SET GRAPH TITLE:**
245 |
246 | *$graph->title( $title );*
247 |
248 | *$graph->set_title( $title ); // synonymous of title()*
249 |
250 | This method set the graph TITLE
251 |
252 | $title: String with the title
253 |
254 | Example:
255 |
256 | $graph = new graph();
257 | $graph->bar( [1, 2, 3, 4] );
258 | $graph->title("Here your graph TITLE");
259 | echo '
'; // Echo img raw data in html page
260 |
261 | With this simple code you will generate Simple Bar graph with title:
262 |
263 | 
264 |
265 | - **SET GRAPH X LABEL:**
266 |
267 | *$graph->xlabel( $xlabel );*
268 |
269 | *$graph->set_xlabel( $xlabel ); // synonymous of xlabel()*
270 |
271 | This method set the graph X LABEL
272 |
273 | $xlabel: String with the X LABEL
274 |
275 | Example:
276 |
277 | $graph = new graph();
278 | $graph->bar( [1, 2, 3, 4] );
279 | $graph->xlabel( 'Here your graph X LABEL' );
280 | echo '
'; // Echo img raw data in html page
281 |
282 | With this simple code you will generate Simple Bar graph with X label:
283 |
284 | 
285 |
286 | - **SET GRAPH Y LABEL:**
287 |
288 | *$graph->ylabel( $ylabel );*
289 |
290 | *$graph->set_ylabel( $ylabel ); // synonymous of ylabel()*
291 |
292 | This method set the graph Y LABEL
293 |
294 | $ylabel: String with the Y LABEL
295 |
296 | Example:
297 |
298 | $graph = new graph();
299 | $graph->bar( [1, 2, 3, 4] );
300 | $graph->ylabel( 'Here your graph Y LABEL' );
301 | echo '
'; // Echo img raw data in html page
302 |
303 | With this simple code you will generate Simple Bar graph with Y label:
304 |
305 | 
306 |
307 | - **LIMIT AXES VALUES:**
308 |
309 | *$graph->axes( $xmin, $xmax, $ymin, $ymax );*
310 |
311 | *$graph->axes( $arr_min_max );*
312 |
313 | This method set the min & max values of axis X & Y
314 |
315 | You can send each value separatelly with
316 |
317 | $xmin: Minimum Value for Axis X
318 |
319 | $xmax: Maximum Value for Axis X
320 |
321 | $ymin: Minimum Value for Axis Y
322 |
323 | $ymax: Maximum Value for Axis Y
324 |
325 | If you prefer, you can send the params in one array as:
326 |
327 | $arr_params = [$xmin, $xmax, $ymin, $ymax]
328 |
329 | If any of params is NULL, then the system will select it automatically
330 |
331 | Example:
332 |
333 | $graph = new graph();
334 | $graph->bar( [1, 2, 3, 4], [1, 4, 9, 16] );
335 | $arr_params = [0, 6, 0, 20];
336 | $graph->axes($arr_params); // Same as $graph->axes(0, 6, 0, 20);
337 | $graph->title("Limits Axis X & Y"); // Set the Title
338 | echo '
'; // Echo img raw data in html page
339 |
340 | With this simple code you will generate Simple Bar graph with limits in X & Y axis:
341 |
342 | 
343 |
344 | - **SHOW LEGEND:**
345 |
346 | *$graph->legend( $legend = true );*
347 |
348 | Calling this method the graph show the legend. You can set it to false to hide the legend. By default the legend is not showed.
349 |
350 | By default, the title of each serie to show in legend will be the index of the serie. You can set the name of the title with $cfg param whe call bar(), plot() methods
351 |
352 | Example:
353 |
354 | $graph->bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17] );
355 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15] );
356 | $graph->title( 'Legend' );
357 | $graph->legend( );
358 | echo '
'; // Echo img raw data in html page
359 |
360 | With this simple code you will generate Graph with legend:
361 |
362 | 
363 |
364 | Example with legend names:
365 |
366 | $graph->bar( [1, 2, 3, 4, 5, 6, 7], [1, 4, 9, 16, 17, 18, 17], ['label'=>'Name Legend 1'] );
367 | $graph->plot( [1, 2, 3, 4, 5, 6, 7], [10,8, 5, 10,15, 16, 15], ['label'=>'Name Legend 2'] );
368 | $graph->title( 'Legend with label names' );
369 | $graph->legend( );
370 | echo '
'; // Echo img raw data in html page
371 |
372 | With this simple code you will generate Graph with legend:
373 |
374 | 
375 |
376 | - **MARKERS:**
377 |
378 | When plot a line or bar, you can send a param marker. Markers allowed:
379 | 'x', 'o', 'd', '^', 's'
380 |
381 | *See USING LINES, COLORS & MARKERS.
382 |
383 | Example:
384 |
385 | $graph->plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => 'x'] );
386 | $graph->plot( [4, 5, 6, 7], [5, 8, 7, 10], ['marker' => 'o'] );
387 | $graph->axes([2, 9, 0, 20]);
388 | $graph->title( 'Lines & Legend with "x" & "o" markers' );
389 | $graph->legend( );
390 | echo '
'; // Echo img raw data in html page
391 |
392 | With this simple code you will generate Graph with markers:
393 |
394 | 
395 |
396 | You can pass directly the marker and format line. Example of use with line with marker and only marker:
397 |
398 | $graph->plot( [4, 5, 6, 7], [1, 4, 9, 16], 'o' );
399 | $graph->plot( [4, 5, 6, 7], [5, 8, 7, 10], 'x-' );
400 | $graph->axes([2, 9, 0, 20]);
401 | $graph->title( 'Line with marker & only markers' );
402 | echo '
'; // Echo img raw data in html page
403 |
404 | With this simple code you will generate Graph with markers and serie with marker and line:
405 |
406 | 
407 |
408 | - **PASS MORE THAN 1 PLOT VALUES, COLORS & MARKERS:**
409 |
410 | In 1 simple row you can pass more than 1 array of values with colors & markers. *See USING LINES, COLORS & MARKERS*:
411 |
412 | $graph = new graph();
413 | $x = $graph->math->linspace( 0, 5, 20 );
414 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
415 | $graph->title( 'Colors, disctont. line & markers "--", "square", "^"' );
416 | echo '
'; // Echo img raw data in html page
417 |
418 | With this simple code you will generate Graph with mutiple values, colors & markers:
419 |
420 | 
421 |
422 | - **CUSTOM PNG MARKERS:**
423 |
424 | You can use your custom PNG markers. The file need to be .png file (NOTE: ONLY WORKS WITH PNG-8. Don't work with PNG-24)
425 |
426 | Example:
427 |
428 | $graph->plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => __DIR__ . '/author.png',] );
429 | $graph->title( 'Custom image ^_^\'' );
430 | echo '
'; // Echo img raw data in html page
431 |
432 | With this simple code you will generate Graph with custom markers:
433 |
434 | 
435 |
436 | - **SHOW GUIDELINES:**
437 |
438 | You can use background guidelines
439 |
440 | *$graph->set_drawguidelines( $show=true );*
441 |
442 | Example:
443 |
444 | $graph->plot( [4, 5, 6, 7], [1, 4, 9, 16], ['marker' => __DIR__ . '/custom_marker.png', 'label'=>'PHP'] );
445 | $graph->plot( [4, 5, 6, 7], [3, 7, 13, 8], ['marker' => __DIR__ . '/tux.png', 'label'=>'GNU/Linux'] );
446 | $graph->plot( [4, 5, 6, 7], [5, 2, 7, 5], ['marker' => __DIR__ . '/nginx.png', 'label'=>'NGINX'] );
447 | $graph->set_drawguidelines( );
448 | $graph->legendwidthlines( 65 ); // Change width of legend lines
449 | $graph->legendlabelheight( 33 ); // Change height of legend labels
450 | $graph->title( 'Better with Guidelines' );
451 | $graph->legend( );
452 | echo '
'; // Echo img raw data in html page
453 |
454 | With this simple code you will generate Graph with custom markers & Guidelines:
455 |
456 | 
457 |
458 | - **SHOW X GUIDELINES:**
459 |
460 | You can show only background X guidelines
461 |
462 | *$graph->set_x_drawguidelines( $show=true );*
463 |
464 | Example:
465 |
466 | $graph->set_x_drawguidelines( );
467 |
468 | - **SHOW Y GUIDELINES:**
469 |
470 | You can show only background Y guidelines
471 |
472 | *$graph->set_y_drawguidelines( $show=true );*
473 |
474 | Example:
475 |
476 | $graph->set_y_drawguidelines( );
477 |
478 | - **CHANGE LINE WIDTH OF LEGEND:**
479 |
480 | Sometimes you will need to change the width of the series line at Legend. You can to set the with legendwidthlines()
481 |
482 | *$graph->legendwidthlines( $legendwidthlines=28 );*
483 |
484 | See example at SHOW GUIDELINES
485 |
486 | - **CHANGE LABEL HEIGHT OF LEGEND:**
487 |
488 | Sometimes you will need to change the height of the labe series line at Legend. You can to set the with legendlabelheight()
489 |
490 | *$graph->legendlabelheight( $legendlabelheight=21 );*
491 |
492 | See example at SHOW GUIDELINES
493 |
494 | - **SET BACKGROUND IMAGE:**
495 |
496 | You can set a background image. Support .jpg, .png, .gif. The class that load the image is img2img (https://github.com/vivesweb/img2img). See the documentation for possibilites
497 |
498 | *$graph->imread( $filename );*
499 |
500 | Example:
501 |
502 | $graph = new graph();
503 | $graph->imread( __DIR__ .'/background_example.jpg');
504 | $x = $graph->math->linspace( 0, 5, 20 );
505 | $graph->title( 'Original Background' );
506 | $graph->plot( [ [$x, $x, 'r--'], [$x, $graph->math->pow($x, 2), 'bs'], [$x, $graph->math->pow($x, 3), 'g^'] ] );
507 | echo '
'; // Echo img raw data in html page
508 |
509 | With this simple code you will generate Graph with background image:
510 |
511 | 
512 |
513 | Is not a good idea use original image. You will need to transform it to more clearer picture. With the img2img class you can transform it directly. img2img (https://github.com/vivesweb/img2img). See the documentation for possibilites. You can see https://github.com/vivesweb/graph-php/blob/main/example.php to take some ideas for its use.
514 |
515 | The class of img2img is loaded at $graph->bckgr_img_gd. You can use directly the methods of img2img. See the next example.
516 |
517 | Example with cleared background image:
518 |
519 | $graph->plot( [4, 5, 6, 7], [1, 4, 9, 13], ['marker' => __DIR__ . '/custom_marker.png', 'label'=>'PHP'] );
520 | $graph->plot( [4, 5, 6, 7], [3, 6, 12, 8], ['marker' => __DIR__ . '/tux.png', 'label'=>'GNU/Linux'] );
521 | $graph->plot( [4, 5, 6, 7], [5, 2, 7, 5], ['marker' => __DIR__ . '/nginx.png', 'label'=>'NGINX'] );
522 | $graph->legendwidthlines( 65 );
523 | $graph->legendlabelheight( 33 );
524 | $graph->imread( __DIR__ .'/background_example.jpg');
525 | $graph->title( 'Better use of background' );
526 | $graph->set_drawguidelines( );
527 | $graph->bckgr_img_gd->filter( IMG_FILTER_GRAYSCALE );
528 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, -50 );
529 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 100 );
530 | $graph->bckgr_img_gd->filter( IMG_FILTER_CONTRAST, 50 );
531 | $graph->bckgr_img_gd->filter( IMG_FILTER_BRIGHTNESS, 115 );
532 | $graph->bckgr_img_gd->flip( );
533 | $graph->legend();
534 | echo '
'; // Echo img raw data in html page
535 |
536 | With this simple code you will generate Graph with cleared background image:
537 |
538 | 
539 |
540 | - **ROTATE TICKS X LABELS:**
541 |
542 | You can rotate text on X Axis labels. In this case we use 45º. if you want original horizontal, set rotation to 0.
543 |
544 | *$graph->xticks( ['rotation' => 45] );*
545 |
546 | Example:
547 |
548 | $graph->plot( [40000, 50000, 60000, 70000], [1, 4, 9, 13] );
549 | $graph->title( 'Rotation Xticks' );
550 | $graph->set_drawguidelines( );
551 | $graph->xticks( ['rotation' => 45]);
552 | echo '
'; // Echo img raw data in html page
553 |
554 | With this simple code you will generate Graph with rotation X labels:
555 |
556 | 
557 |
558 | - **SCATTER:**
559 |
560 | You can create a Scatter Graph.
561 |
562 | *$graph->scatter( $arr_values );*
563 |
564 | $arr_values will be as:
565 |
566 | $arr_values = [
567 | [ [1, 1.5, 2, 2, 3, 4], [10, 9.5, 9, 10, 8, 9] ], // For Serie 1 [ [x_arrayvalues], [y_arrayvalues] ]
568 | [ [4, 5, 5.7, 6, 7, 8], [8, 6, 7.3, 8, 7, 8] ], // For Serie 2 [ [x_arrayvalues], [y_arrayvalues] ]
569 | ]
570 |
571 | If you want labels on Legend, use this:
572 |
573 | $arr_values = [
574 | [ [1, 1.5, 2, 2, 3, 4], [10, 9.5, 9, 10, 8, 9], ['label'=>'Male'] ],
575 | [ [4, 5, 5.7, 6, 7, 8], [8, 6, 7.3, 8, 7, 8], ['label'=>'Female'] ],
576 | ];
577 |
578 | Example:
579 |
580 | $arr_values = [
581 | [ [1, 1.5, 2, 2, 3, 4], [10, 9.5, 9, 10, 8, 9], ['label'=>'Male'] ],
582 | [ [4, 5, 5.7, 6, 7, 8], [8, 6, 7.3, 8, 7, 8], ['label'=>'Female'] ],
583 | ];
584 |
585 | $graph->title( 'Scatter & legend' );
586 | $graph->scatter( $arr_values );
587 | $graph->legend( );
588 | echo '
'; // Echo img raw data in html page
589 |
590 | With this simple code you will generate Scatter Graph:
591 |
592 | 
593 |
594 | - **HISTOGRAM:**
595 |
596 | You can create an histogram from data.
597 |
598 | *$graph->hist( $arr_values, $cfg = null );*
599 |
600 | $cfg['num_blocks] = blocks to divide histogram. Default = 10
601 |
602 | Example:
603 |
604 | $graph->title( 'DEFAULT HISTOGRAM' );
605 | $graph->hist( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150] );
606 | echo '
'; // Echo img raw data in html page
607 |
608 | With this simple code you will generate Histogram Graph:
609 |
610 | 
611 |
612 | Example of Histogram with 7 blocks:
613 |
614 | $graph->title( '7 xval HISTOGRAM' );
615 | $graph->hist( [10, 11, 40, 45, 50, 55, 60, 60, 70, 80, 85, 90, 95, 100, 105, 106, 107, 108, 109, 110, 111, 112, 123, 140, 150], ['num_blocks' => 7] );
616 | echo '
'; // Echo img raw data in html page
617 |
618 | With this simple code you will generate Histogram Graph with 7 bocks:
619 |
620 | 
621 |
622 |
623 |
624 | - **GET BASE64 IMAGE DATE:**
625 |
626 | In this earlier version you can get the data in Base64 format and use it directly into html page.
627 |
628 | **From Version 1.0.1:**
629 |
630 | - In $cfg you can specify if you want to draw X ticks labels or Y ticks labes with array configuration: [ 'xshowlabelticks' => true, 'xshowlabelticks' => true ].
631 | - In $cfg you can sepecify border type: [ 'bordertype' => 'square' ] or [ 'bordertype' => 'halfsquare' ]. Default is square. Halfsquare normaly used when draw subplots.
632 | - In $cfg you can sepecify the ymarginleftlabel: [ 'ymarginleftlabel' => 1 ]
633 |
634 | *$graph->output_gd_png_base64( $cfg = null )*
635 |
636 | Example:
637 |
638 | echo '
'; // Echo img raw data in html page
639 | echo '
'; // Echo img raw data in html page without ticks labels
640 |
641 | - **SET WIDTH GRAPH:**
642 |
643 | You can change the default (6.4 inches) width graph in inches
644 |
645 | *$graph->width( $width = 6.4 );*
646 |
647 | Example:
648 |
649 | $graph->width( 12.8 );
650 |
651 | - **SET HEIGHT GRAPH:**
652 |
653 | You can change the default (4.8 inches) height graph in inches
654 |
655 | *$graph->height( $height = 4.8 );*
656 |
657 | Example:
658 |
659 | $graph->height( 9.6 );
660 |
661 |
662 | - **CFG_GRAPH_TYPES - USING LINES, COLORS & MARKERS:**
663 |
664 | You can set some types of graphs:
665 |
666 | - When prepare a plot, you can to pass a cfg_param with:
667 |
668 | '-': Single line
669 |
670 | '--': Discontinued line
671 |
672 | 'bar': Bar
673 |
674 | 'scatter': Scatter
675 |
676 | One of this colors:
677 |
678 | ['b' => '#0000ff', 'g' => '#008000', 'r' => '#ff0000', 'c' => '#00cccc', 'm' => '#cc0000', 'y' => '#cc0000', 'k' => '#000000', 'w' => '#ffffff',
679 | '#1f77b4' => '#1f77b4', '#ff7f0e' => '#ff7f0e', '#2ca02c' => '#2ca02c', '#d62728' => '#d62728', '#9467bd' => '#9467bd', '#8c564b' => '#8c564b',
680 | '#e377c2' => '#e377c2', '#7f7f7f' => '#7f7f7f', '#bcbd22' => '#bcbd22', '#17becf' => '#17becf']
681 |
682 | For markers you can to use:
683 |
684 | 'filename.png' -> Your file name of png of your marker
685 |
686 | 'o': round marker
687 |
688 | 'x': X marker
689 |
690 | '^': Triangle marker
691 |
692 | 's': Square marker
693 |
694 | 'd': Diamond marker
695 |
696 | By default, each time that you prepare a values, the system select next color in cycler:
697 | cycler' => [
698 | 'color' => [
699 | 'default' => ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']
700 | ],
701 | ],
702 |
703 | If you want a special color for one serie, you can to pass it in $cfg var when draw plot(), bar(). See the examples
704 |
705 |
706 | - **MATH FUNCTIONS:**
707 |
708 | *$graph->math*
709 |
710 | This class is provided with the math library ext-op-ml-php (https://github.com/vivesweb/ext_op_ml)
711 |
712 | Here is an example of its use. Check the library documentation to see possibilities
713 |
714 | Example:
715 |
716 | $graph = new graph();
717 | $x = $graph->math->linspace( 0, 2, 50 );
718 | $graph->plot( $x, $x, ['label'=>'linear'] );
719 | $graph->plot( $x, $graph->math->pow($x, 2), ['label'=>'quadratic'] );
720 | $graph->plot( $x, $graph->math->pow($x, 3), ['label'=>'cubic'] );
721 | $graph->xlabel('x label');
722 | $graph->ylabel('y label');
723 | $graph->title("Simple Plot. With Legend & Labels X, Y");
724 | $graph->legend( );
725 | echo '
'; // Echo img raw data in html page
726 |
727 | With this simple code you will generate Simple Line graph with Math Functions:
728 |
729 | 
730 |
731 |
732 |
733 |
734 |
735 |
736 | **Of course. You can use it freely :vulcan_salute::alien:**
737 |
738 | By Rafa.
739 |
740 |
741 | @author Rafael Martin Soto
742 |
743 | @author {@link http://www.inatica.com/ Inatica}
744 |
745 | @blog {@link https://rafamartin10.blogspot.com/ Rafael Martin's Blog}
746 |
747 | @since October 2021
748 |
749 | @version 1.0.1
750 |
751 | @license GNU General Public License v3.0
752 |
--------------------------------------------------------------------------------