bergben/ng2-img-max

How to resize image with both max-width: X, or max-height: X while keeping the aspect ratio (and leaving the other larger)

dvirHam opened this issue · 3 comments

If I could use the imageExifService it was easy but since it's private I don't figure out how to do this.
Can I do this without overriding it?

From the documentation I think the following should work, haven't tried it myself yet:
Method to resize files if necessary down to a certain maximal width or maximal height in px. If you want only one limit just set the other max to 10.000: for example resize([myfile1,myfile2],2000,10000).subscribe([...]

Having said that, since this library already uses EXIF it would be great to expose the properties using a service.
I can open a separate issue if needed.
I, for example, need to get the geo location of the image if it exists and resize it before uploading. If I could get it in the same package it would be great.

I'm using the resizeImage function with Angular7 to resize a photo taken with a Smartphone.
I noticed that if we fix the width value but the orientation of the pictures produce a rotation then the values maxWidth/maxHeight must be inverted because of that rotation and currently this inversion is not taken into account.
I extracted the private function and inserted the following example logic:

let currentWidth = orientedImg.width;
let currentHeight = orientedImg.height;

// If Landscape, invert resize values to respect the EXIF orientation
if (currentWidth > currentHeight) {
    let temp = maxWidth;
    maxWidth = maxHeight;
    maxHeight = temp;
}

Now the image respect w/h sizes accordingly with the original EXIF orientantion!

I have implemented the relevant service here if anyone is interested since there was no response here:
https://github.com/IsraelHikingMap/Site/blob/master/IsraelHiking.Web/sources/application/services/image-resize.service.ts