1.1.2 • Published 6 years ago

resize-base-sixtyfour-browser v1.1.2

Weekly downloads
1
License
MIT
Repository
-
Last release
6 years ago

resize-base64

Shamelessly stolen from hendrik-scholz's fork. None of this was done by me, I'm simply grabbing this repo for my own records.


Functions that resize a Base64 image. Pass a Base64 string of an image, the maximum width, the maximum size, a success callback, and an error callback to the function. The function returns the resized image in the success callback.

FunctionDescription
resizeBase64ForMaxWidthresizes an image to the maximum width, the aspect ratio of the image is maintained
resizeBase64ForMaxHeightresizes an image to the maximum height, the aspect ratio of the image is maintained
resizeBase64ForMaxWidthAndMaxHeightresizes an image to the maximum width and maximum height, the aspect ratio of the image is not maintained

Every function takes the parameters listed below.

ParameterDescription
base64Stringthe image to resize as a Base64 string
maxWidththe maxmium width that the image should be resized to
maxHeightthe maxmium height that the image should be resized to
successCallbackthe callback that contains the resized image as a Base64 string
errorCallbackthe callback that contains the error that occurred during resizing

Restrictions

  • The function can only be used in frontend code.
  • Since enlarging images is not desirable due to the loss of quality, the function does not support it. Create a feature request for enlarging images if necessary.

Installation

bower install https://github.com/hendrik-scholz/resize-base64/archive/master.zip
npm install https://github.com/hendrik-scholz/resize-base64/#master

Add the following line to your package.json and call 'npm install' from the directory where your package.json is saved.

"resize-base64": "https://github.com/hendrik-scholz/resize-base64/#master"

Usage

Angular

See https://github.com/hendrik-scholz/resize-base64-angular-example for details.

Vue

See https://github.com/hendrik-scholz/resize-base64-vue-example for details.

Test

The tests in the test folder have to be run with the following lines commented out in the index.js:

export { resizeBase64ForMaxWidth };
export { resizeBase64ForMaxHeight };
export { resizeBase64ForMaxWidthAndMaxHeight };

Example

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script src="../index.js"></script>
<script type="text/javascript">
	let base64Image_320x240 = 'data:image/jpeg;base64,/9j/4AAQSk...';
	let maxWidth = 2;
	let maxHeight = 120;

	let successCallback = function(resizedImage) {
		document.getElementById('originalImage').src = base64Image_320x240;
		document.getElementById('resizedImage').src = resizedImage;
	};

	let errorCallback = function(errorMessage) {
		alert(errorMessage);
	};

	resizeBase64ForMaxHeight(base64Image_320x240, maxWidth, maxHeight, successCallback, errorCallback);
</script>
</head>
<body>
	<img id="originalImage">

	<img id="resizedImage">
</body>
</html>

See test/resizeBase64ImageFrom320x240ToMaxHeight120.html for details.