diff options
| author | Marak <[email protected]> | 2020-08-25 15:45:18 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-08-25 15:45:18 -0500 |
| commit | 4644f370b69412fea3d1d8471a14a040e30265b3 (patch) | |
| tree | 7fe283598ded985f2b7c5b5206c5dfc28e823304 /lib | |
| parent | 95b1c095d4feb3275b1fbc345e26ff371bf24640 (diff) | |
| parent | 8f4c8322f299940e741eb2391a714bcad87a9474 (diff) | |
| download | faker-4644f370b69412fea3d1d8471a14a040e30265b3.tar.xz faker-4644f370b69412fea3d1d8471a14a040e30265b3.zip | |
Merge pull request #855 from abnersajr/fix-797
Adds Lorem Picsum as image provider
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/image.js | 3 | ||||
| -rw-r--r-- | lib/image_providers/lorempicsum.js | 108 |
2 files changed, 111 insertions, 0 deletions
diff --git a/lib/image.js b/lib/image.js index 271b62f6..3f50d78f 100644 --- a/lib/image.js +++ b/lib/image.js @@ -3,6 +3,7 @@ * @namespace faker.image * @property {object} lorempixel - faker.image.lorempixel * @property {object} unsplash - faker.image.unsplash + * @property {object} unsplash - faker.image.lorempicsum * @default Default provider is unsplash image provider */ var Image = function (faker) { @@ -10,6 +11,7 @@ var Image = function (faker) { var self = this; var Lorempixel = require('./image_providers/lorempixel'); var Unsplash = require('./image_providers/unsplash'); + var LoremPicsum = require('./image_providers/lorempicsum'); /** * image @@ -218,6 +220,7 @@ var Image = function (faker) { self.lorempixel = new Lorempixel(faker); self.unsplash = new Unsplash(faker); + self.lorempicsum = new LoremPicsum(faker); // Object.assign(self, self.unsplash); // How to set default as unsplash? should be image.default? diff --git a/lib/image_providers/lorempicsum.js b/lib/image_providers/lorempicsum.js new file mode 100644 index 00000000..fbb6b65f --- /dev/null +++ b/lib/image_providers/lorempicsum.js @@ -0,0 +1,108 @@ +/** + * + * @namespace lorempicsum + * @memberof faker.image + */ +var LoremPicsum = function (faker) { + + var self = this; + + /** + * image + * + * @param {number} width + * @param {number} height + * @param {boolean} grayscale + * @param {number} blur 1-10 + * @method faker.image.lorempicsum.image + * @description search image from unsplash + */ + self.image = function (width, height, grayscale, blur) { + return self.imageUrl(width, height, grayscale, blur); + }; + /** + * imageGrayscaled + * + * @param {number} width + * @param {number} height + * @param {boolean} grayscale + * @method faker.image.lorempicsum.imageGrayscaled + * @description search grayscale image from unsplash + */ + self.imageGrayscale = function (width, height, grayscale) { + return self.imageUrl(width, height, grayscale); + }; + /** + * imageBlurred + * + * @param {number} width + * @param {number} height + * @param {number} blur 1-10 + * @method faker.image.lorempicsum.imageBlurred + * @description search blurred image from unsplash + */ + self.imageBlurred = function (width, height, blur) { + return self.imageUrl(width, height, undefined, blur); + }; + /** + * imageRandomSeeded + * + * @param {number} width + * @param {number} height + * @param {boolean} grayscale + * @param {number} blur 1-10 + * @param {string} seed + * @method faker.image.lorempicsum.imageRandomSeeded + * @description search same random image from unsplash, based on a seed + */ + self.imageRandomSeeded = function (width, height, grayscale, blur, seed) { + return self.imageUrl(width, height, grayscale, blur, seed); + }; + /** + * avatar + * + * @method faker.image.lorempicsum.avatar + */ + self.avatar = function () { + return faker.internet.avatar(); + }; + /** + * imageUrl + * + * @param {number} width + * @param {number} height + * @param {boolean} grayscale + * @param {number} blur 1-10 + * @param {string} seed + * @method faker.image.lorempicsum.imageUrl + */ + self.imageUrl = function (width, height, grayscale, blur, seed) { + var width = width || 640; + var height = height || 480; + + var url = 'https://picsum.photos'; + + if (seed) { + url += '/seed/' + seed; + } + + url += '/' + width + '/' + height; + + if (grayscale && blur) { + return url + '?grayscale' + '&blur=' + blur; + } + + if (grayscale) { + return url + '?grayscale'; + } + + if (blur) { + return url + '?blur=' + blur; + } + + return url; + }; + } + + module["exports"] = LoremPicsum; +
\ No newline at end of file |
