এই কয়েকটি কোড-স্নিপেটগুলি সংক্ষিপ্ত এবং কর্মক্ষম থাকা অবস্থায়, তারা অনুসরণ এবং বুঝতে তুচ্ছ নয়।
যেহেতু আমি স্ট্যাক-ওভারফ্লো থেকে "কপি-পেস্ট" এর অনুরাগী নই, আমি বিকাশকারীরা তাদের সফ্টওয়্যারটিতে যে কোডটি চাপছে তা বোঝার জন্য চাই, আশা করি আপনি নীচের দরকারী হবেন।
ডেমো : জেএস এবং এইচটিএমএল ক্যানভাস ডেমো ফিডলারের সাহায্যে চিত্রগুলি পুনরায় আকার দিচ্ছে।
এই আকার পরিবর্তন করতে আপনি 3 টি ভিন্ন পদ্ধতি খুঁজে পেতে পারেন যা কোডটি কীভাবে কাজ করছে এবং কেন তা আপনাকে বুঝতে সহায়তা করবে।
https://jsfiddle.net/1b68eLdr/93089/
উভয় ডেমো, এবং টাইপস্ক্রিপ্ট পদ্ধতির সম্পূর্ণ কোড যা আপনি আপনার কোডে ব্যবহার করতে চাইতে পারেন, গিটহাব প্রকল্পে পাওয়া যাবে।
https://github.com/eyalc4/ts-image-resizer
এটিই চূড়ান্ত কোড:
export class ImageTools {
base64ResizedImage: string = null;
constructor() {
}
ResizeImage(base64image: string, width: number = 1080, height: number = 1080) {
let img = new Image();
img.src = base64image;
img.onload = () => {
if(img.height <= height && img.width <= width) {
this.base64ResizedImage = base64image;
}
else {
if(img.height > img.width) {
width = Math.floor(height * (img.width / img.height));
}
else {
height = Math.floor(width * (img.height / img.width));
}
let resizingCanvas: HTMLCanvasElement = document.createElement('canvas');
let resizingCanvasContext = resizingCanvas.getContext("2d");
resizingCanvas.width = img.width;
resizingCanvas.height = img.height;
resizingCanvasContext.drawImage(img, 0, 0, resizingCanvas.width, resizingCanvas.height);
let curImageDimensions = {
width: Math.floor(img.width),
height: Math.floor(img.height)
};
let halfImageDimensions = {
width: null,
height: null
};
while (curImageDimensions.width * 0.5 > width) {
halfImageDimensions.width = Math.floor(curImageDimensions.width * 0.5);
halfImageDimensions.height = Math.floor(curImageDimensions.height * 0.5);
resizingCanvasContext.drawImage(resizingCanvas, 0, 0, curImageDimensions.width, curImageDimensions.height,
0, 0, halfImageDimensions.width, halfImageDimensions.height);
curImageDimensions.width = halfImageDimensions.width;
curImageDimensions.height = halfImageDimensions.height;
}
let outputCanvas: HTMLCanvasElement = document.createElement('canvas');
let outputCanvasContext = outputCanvas.getContext("2d");
outputCanvas.width = width;
outputCanvas.height = height;
outputCanvasContext.drawImage(resizingCanvas, 0, 0, curImageDimensions.width, curImageDimensions.height,
0, 0, width, height);
this.base64ResizedImage = outputCanvas.toDataURL('image/jpeg', 0.85);
}
};
}}