ios图片旋转处理

var reader = new FileReader();
                reader.onload = function(readerEvent) {

                    var image = new Image();

                    image.src = readerEvent.target.result;
                    image.onload = function(imageEvent) {
                        var width = image.naturalWidth;
                        var height = image.naturalHeight;
                        EXIF.getData(image, function() {

                            EXIF.getAllTags(this);

                            Orientation = EXIF.getTag(this, 'Orientation');

                        });
                        let canvas = document.createElement("canvas");
                        var cxt = canvas.getContext('2d');
                        if (Orientation == 3) {
                            canvas.width = width;

                            canvas.height = height;

                            cxt.rotate(Math.PI);

                            cxt.drawImage(image, 0, 0, -width, -height);

                        } else if (Orientation == 8) {
                            canvas.width = height;

                            canvas.height = width;

                            cxt.rotate(Math.PI * 3 / 2);
                            cxt.drawImage(image, 0, 0, -width, height);

                        } else if (Orientation == 6) {
                            canvas.width = height;

                            canvas.height = width;

                            cxt.rotate(Math.PI / 2);

                            console.warn(cxt);

                            cxt.drawImage(image, 0, 0, width, -height);

                        } else {
                            canvas.width = width;

                            canvas.height = height;

                            cxt.drawImage(image, 0, 0, width, height);

                        }

                        var dataUrl = canvas.toDataURL();

                        var resizedImage = dataURLToBlob(dataUrl);

                        function dataURLToBlob(dataurl) {
                            var arr = dataurl.split(','),
                                mime = arr[0].match(/:(.*?);/)[1],
                                bstr = atob(arr[1]),
                                n = bstr.length,
                                u8arr = new Uint8Array(n);
                            while (n--) {
                                u8arr[n] = bstr.charCodeAt(n);
                            }
                            return new Blob([u8arr], {
                                type: mime
                            });
                        }


                        $.event.trigger({

                            type: "imageResized",

                            blob: resizedImage,

                            url: dataUrl,
                        });

                        $("#selfimg").attr("src", dataUrl);
                        //上传图片
                        changepic();
                    };

                };
                reader.readAsDataURL(file.files[0]);

猜你喜欢

转载自www.cnblogs.com/jjmirai/p/12564817.html