Xoay hình ảnh trước khi tải lên JavaScript

Hôm nay tôi sẽ chia sẻ đoạn mã nhỏ mà tôi đã tạo hôm nay để cho phép người dùng chỉnh sửa/cắt/xoay hình ảnh trước khi tải chúng lên trang web

Tôi đang sử dụng Vuetify với các Biểu tượng Vật liệu trong dự án của mình và cho rằng nhiều bạn cũng sử dụng nó vì nó là thứ phổ biến nhất

Điểm thú vị nhất trong hướng dẫn này là, Hình ảnh đã chỉnh sửa sẽ đơn giản là Đối tượng tệp HTML, không giống như các giải pháp khác hiện có trên internet trả về chuỗi bash hoặc blob, v.v., nơi bạn phải sửa đổi logic phụ trợ của mình

vì vậy trong trường hợp của chúng tôi, nó sẽ hoàn toàn tương thích với logic tải lên API phụ trợ hiện có khi nó trả về Đối tượng tệp mặc định

Đầu tiên Cài đặt phụ thuộc cần thiết để chỉnh sửa hình ảnh

Cài đặt

________số 8

Thứ hai, tạo một thành phần có tên AvatarUpload trong thư mục thành phần hoặc một nơi nào khác mà bạn cảm thấy thoải mái

Vì vậy, iOS có một tính năng thú vị khi sử dụng API FileReader để lưu trữ hình ảnh theo hướng mặc định bất kể hình ảnh được chụp như thế nào, do đó, hình ảnh dọc được lưu trữ ở chế độ ngang, e. g

Hướng "thực tế" được lưu trữ trong dữ liệu Exif đính kèm với hình ảnh. Điều này có nghĩa là nhà phát triển phải thực hiện thêm một bước để hiển thị hình ảnh theo đúng hướng

Có các thư viện để thao tác hoặc xóa dữ liệu Exif [xem e. g. này], nhưng tôi đang tìm kiếm một cách đơn giản để thay đổi kích thước và xoay hình ảnh từ iOS [tôi. e. iPhone] mà không cần sử dụng thư viện. Tôi đã đưa ra những điều dưới đây [xem ví dụ hoạt động tại đây]. Điều này giả sử với chiều rộng khung nhìn nhỏ hơn 400px, hình ảnh cần được xoay. Nó cũng thay đổi kích thước hình ảnh thành 800 × 600, phù hợp với các ứng dụng không cần độ phân giải đầy đủ mà iPhone hiện đại cung cấp. Tất nhiên, bạn có thể thực hiện kiểm tra mạnh mẽ hơn về hệ điều hành, trình duyệt và/hoặc xem kích thước cổng

Xoay hình ảnh trước khi tải lên cho phép người dùng sửa căn chỉnh ảnh khi tải hình ảnh lên máy chủ. Do đó, người dùng có thể xem trước hình ảnh và sửa hướng trước khi tải tệp lên với sự trợ giúp của tính năng này. Tóm lại, chức năng Xoay ảnh rất hữu ích khi bạn muốn xem hướng ảnh và xoay ảnh trước khi tải lên.

BÀI LIÊN QUAN

Giao diện lập trình ứng dụng [API] là gì?

Thích Hệ thống xếp hạng không thích với jQuery, Ajax và PHP

Hệ thống xếp hạng sao với jQuery, Ajax, PHP và MySQL

Bạn có thể nhanh chóng triển khai chức năng Xem trước hình ảnh trước khi tải lên và xoay chức năng phần tử hình ảnh bằng cách sử dụng jQuery. Bạn có thể xoay Hình ảnh theo một góc nhất định và tải Hình ảnh lên máy chủ bằng PHP. Với sự trợ giúp của hướng dẫn này, chúng tôi sẽ giải thích cho bạn cách xem trước Hình ảnh bằng jQuery và xoay Hình ảnh trước khi tải lên máy chủ bằng PHP.

Chức năng sau sẽ được hợp nhất thành tập lệnh xoay hình ví dụ.

  • Đầu tiên, bản xem trước hiển thị của Hình ảnh đã chọn bằng JavaScript
  • Thứ hai, xoay Hình ảnh theo chiều kim đồng hồ hoặc góc ngược chiều kim đồng hồ bằng jQuery
  • Thứ ba, xoay hình ảnh bằng cách sử dụng góc đã cho theo độ bằng PHP
  • Và cuối cùng, tải Hình ảnh đã xoay lên máy chủ

Biểu mẫu tải lên hình ảnh

Tạo biểu mẫu HTML với trường nhập tệp [đối với tệp hình ảnh được chọn], đầu vào ẩn [để chỉ định độ xoay] và nút gửi

    
    
    

Phần tử HTML để xem trước hình ảnh

Xác định một phần tử HTML để xem trước Hình ảnh

  • Nút bên phải xoay ảnh theo chiều kim đồng hồ
  • Nút bên trái xoay Hình ảnh ngược chiều kim đồng hồ
Left Right

Thư viện jQuery

Chúng ta có thể sử dụng jQuery để thêm, xóa và xoay các thành phần hình ảnh, vì vậy trước tiên hãy xem thư viện jQuery

XEM THÊM. Tải lên tệp Ajax bằng jQuery và PHP

Đọc dữ liệu tệp bằng JavaScript.      

filePreview[] là một hàm JavaScript tùy chỉnh tạo bản xem trước của Hình ảnh

  • Đối tượng FileReader giúp đọc dữ liệu tệp thô của Hình ảnh bằng JavaScript.
  • Khi nội dung hình ảnh thô được tải, bản xem trước hình ảnh sẽ thêm vào phần tử HTML bằng jQuery
function filePreview[input] {
    if [input.files && input.files[0]] {
        var reader = new FileReader[];
        reader.onload = function [e] {
            $['#imgPreview + img'].remove[];
            $['#imgPreview'].after[''];
        };
        reader.readAsDataURL[input.files[0]];
        $['.img-preview'].show[];
    }else{
        $['#imgPreview + img'].remove[];
        $['.img-preview'].hide[];
    }
}

Xem trước hình ảnh đã chọn

Sau khi chọn tệp hình ảnh, bản xem trước xuất hiện bên dưới thành phần được chỉ định bằng cách sử dụng hàm filePreview[]  .

  • Kích hoạt hàm filePreview[]  bằng cách sử dụng phương thức jQuery change[], trong sự kiện thay đổi của đầu vào tệp, 
  • Hàm filePreview[]  hiển thị bản xem trước của hình ảnh đã chọn trên trang web
$["#file"].change[function []{
    // Image preview
    filePreview[this];
}];

Xoay hình ảnh bằng jQuery

Đoạn mã sau giúp xoay hình ảnh bằng cách thay đổi thuộc tính biến đổi của phần tử bằng jQuery

  • Trên sự kiện nhấp vào nút Trái/Phải,
    • Độ xoay được tính dựa trên góc đã chọn và đặt thuộc tính biến đổi để xoay thành phần hình ảnh
    • Đặt giá trị độ cho trường đầu vào xoay để sử dụng phía máy chủ
[function[] {
    var rotation = 0;
    $["#rright"].click[function[] {
        rotation = [rotation -90] % 360;
        $[".pic-view"].css[{'transform': 'rotate['+rotation+'deg]'}];
		
        if[rotation != 0]{
            $[".pic-view"].css[{'width': '300px', 'height': '300px'}];
        }else{
            $[".pic-view"].css[{'width': '100%', 'height': '300px'}];
        }
        $['#rotation'].val[rotation];
    }];
	
    $["#rleft"].click[function[] {
        rotation = [rotation + 90] % 360;
        $[".pic-view"].css[{'transform': 'rotate['+rotation+'deg]'}];
		
        if[rotation != 0]{
            $[".pic-view"].css[{'width': '300px', 'height': '300px'}];
        }else{
            $[".pic-view"].css[{'width': '100%', 'height': '300px'}];
        }
        $['#rotation'].val[rotation];
    }];
}];

XEM THÊM. Tải lên nhiều hình ảnh và lưu trữ trong cơ sở dữ liệu bằng PHP và MySQL

Xoay và tải tệp lên máy chủ

Sau khi gửi biểu mẫu, tệp đã chọn sẽ được gửi đến tập lệnh phía máy chủ [

Left Right
0] để tiếp tục quá trình tải lên bằng PHP

  • Sử dụng phương thức  $_FILES trong PHP để truy xuất tệp.
  • Lấy độ xoay bằng phương pháp PHP $_POST .
  • Tạo hình ảnh mới từ tệp bằng cách sử dụng imagecreatefrompng[] hoặc imagecreatefromgif[] or imagecreatefromjpeg[] function.
  • Xoay hình ảnh với một góc cụ thể bằng cách sử dụng chức năng imagerotate[] .
  • Lưu hình ảnh đã xoay trên máy chủ bằng imagepng[] hoặc imagegif[] or imagejpeg[] function.
  • Nếu góc xoay không được đề cập hoặc chỉ định, hãy tải Hình ảnh lên máy chủ bằng chức năng move_uploaded_file[] .

Phần kết luận

Đầu tiên, mã ví dụ của chúng tôi sẽ giúp bạn xoay hình ảnh trước khi tải nó lên máy chủ bằng PHP. Thứ hai, tính năng xem trước hình ảnh giúp quá trình tải lên hình ảnh dễ tiếp cận hơn. Vì vậy, tùy chọn thay đổi hướng hình ảnh nâng cao giá trị bổ sung cho chức năng tải lên hình ảnh. Và cuối cùng, mã ví dụ của chúng tôi cung cấp một cách dễ dàng để xoay Hình ảnh ở phía máy khách bằng thuộc tính CSS và tải hình ảnh đã xoay lên máy chủ bằng PHP. Do đó, bạn có thể nhanh chóng cải thiện chức năng của Xem trước và

Chủ Đề