ảnh trùng lặp

Tìm hình ảnh trùng lặp bằng Java Cloud SDK

Hình ảnh JPG là định dạng phổ biến cho mục đích in và chỉnh sửa. Hơn nữa, đây là định dạng hình ảnh phổ biến để chia sẻ ảnh và các hình ảnh khác trên internet và giữa người dùng Di động và PC. Kích thước tệp nhỏ của hình ảnh JPG cho phép lưu trữ hàng nghìn hình ảnh trong không gian bộ nhớ nhỏ. Bây giờ khi quá trình nén bị mất dữ liệu, điều đó có nghĩa là một số thông tin không cần thiết sẽ bị xóa vĩnh viễn. Mặt khác, ưu điểm lớn nhất của PNG so với JPEG là quá trình nén không mất dữ liệu, nghĩa là không bị giảm chất lượng mỗi khi mở và lưu lại. PNG cũng xử lý tốt các hình ảnh chi tiết, độ tương phản cao. Bây giờ trong bài viết này, chúng ta sẽ thảo luận chi tiết về cách Chuyển đổi JPG sang PNG bằng Java Cloud SDK

API chuyển đổi hình ảnh

API dựa trên REST của chúng tôi cung cấp khả năng tạo, chỉnh sửa và chuyển đổi tệp hình ảnh sang nhiều định dạng tệp được hỗ trợ. Giờ đây, để triển khai tính năng tải và chuyển đổi jpg thành png trong suốt trong ứng dụng Java, chúng ta cần sử dụng Aspose.Imaging Cloud SDK for Java vì đây là trình bao bọc xung quanh Cloud API. Vì vậy, bước tiếp theo là thêm tham chiếu của nó vào dự án java bằng cách đưa thông tin sau vào tệp pom.xml của dự án kiểu xây dựng maven.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

Sau khi tham chiếu JDK đã được thêm vào dự án, bước quan trọng tiếp theo là tạo một tài khoản miễn phí trên Aspose Cloud Dashboard. Chỉ cần đăng ký Dùng thử miễn phí thông qua một địa chỉ email hợp lệ. Bây giờ hãy đăng nhập bằng tài khoản mới tạo và tra cứu/tạo Client ID và Client Secret tại Cloud Dashboard. Những chi tiết này được yêu cầu cho mục đích xác thực trong các phần sau.

Chuyển đổi JPG sang PNG trong Java

Bây giờ, hãy thảo luận chi tiết về cách chúng ta có thể chuyển đổi JPG sang PNG bằng đoạn mã Java. Để thực hiện chuyển đổi, chúng tôi có hai API để chuyển đổi hình ảnh sang định dạng khác:

API GET yêu cầu chúng tôi trước tiên tải một hình ảnh lên Cloud Storage, sau đó chuyển tên của nó vào URL API. Sau khi cập nhật các tham số hình ảnh, API sẽ trả về hình ảnh đã cập nhật trong phản hồi. Nếu bạn muốn lưu hình ảnh đã cập nhật trên Bộ lưu trữ đám mây, rõ ràng bạn cần thực hiện việc này như minh họa trong các ví dụ bên dưới.

Mặt khác, khi gọi API POST thứ hai, bạn có thể chuyển trực tiếp hình ảnh vào phần thân yêu cầu. Nó cũng cho phép bạn lưu hình ảnh đã cập nhật trên Bộ lưu trữ đám mây bằng cách chỉ định giá trị tham số outPath. Tuy nhiên, nếu bạn không chỉ định giá trị, phản hồi sẽ chứa hình ảnh được truyền phát.

  • Tạo phiên bản ImagingApi dựa trên thông tin đăng nhập khách hàng được cá nhân hóa của bạn
  • Đọc tất cả các tệp JPG từ thư mục cục bộ bằng đối tượng File[]
  • Lặp lại qua các tệp trong mảng và tiếp cận nội dung của từng hình ảnh thành đối tượng byte[]
  • Bây giờ hãy tạo một đối tượng của CreateConvertedImageRequest nơi chúng tôi chỉ định định dạng hình ảnh đầu ra là PNG
  • Gọi phương thức createConvertedImage(…) lưu JPG dưới dạng PNG và trả về kết quả dưới dạng luồng phản hồi
  • Cuối cùng lưu tệp PNG vào ổ đĩa cục bộ bằng đối tượng FileOutputStream
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// tạo đối tượng hình ảnh
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Nhận tất cả các tệp từ thư mục
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Đặt phần mở rộng hình ảnh bắt buộc tại đây.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Danh sách đã lọc của các tệp hình ảnh JPG
List<File> acceptedImages = new ArrayList<>();

// Lặp lại qua từng tệp hình ảnh được đọc từ thư mục cục bộ			 
for (File file : allFiles) {
    //Phân tích phần mở rộng tập tin
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Kiểm tra xem tiện ích mở rộng có được liệt kê trong ImageExtensions được hỗ trợ không
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Thêm hình ảnh vào danh sách đã lọc
	acceptedImages.add(file);
                  
    // đọc nội dung ảnh JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // tạo yêu cầu chuyển đổi hình ảnh với định dạng kết quả là PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // chuyển đổi JPG sang PNG và trả về tệp kết quả trong luồng phản hồi
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Lưu hình ảnh đã xuất vào bộ nhớ cục bộ
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Thay đổi JPG thành PNG bằng Lệnh cURL

Vì chúng ta có thể truy cập các API REST bằng cách sử dụng các lệnh cURL, vì vậy trong phần này, chúng ta sẽ khám phá các chi tiết để chuyển đổi JPG sang PNG trong suốt. Bây giờ là điều kiện tiên quyết, trước tiên chúng ta cần tạo mã thông báo truy cập JWT (dựa trên thông tin đăng nhập của khách hàng) trong khi thực hiện lệnh sau.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Bây giờ chúng tôi sẽ sử dụng lệnh gọi API ConvertImage, nó mong đợi JPG đầu vào đã có sẵn trong bộ nhớ đám mây. Bây giờ hãy thực hiện lệnh sau để thay đổi JPG sang PNG.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/convert?format=PNG" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.png

Phần kết luận

Bài viết này đã cung cấp một số chi tiết tuyệt vời về cách chúng tôi có thể chuyển đổi JPG sang PNG bằng cách sử dụng đoạn mã Java. Tương tự, chúng tôi cũng đã thảo luận về các bước để chuyển đổi JPG sang PNG trong suốt bằng Lệnh cURL. Xin lưu ý rằng Tài liệu sản phẩm là một nơi tuyệt vời để tìm hiểu về các tính năng thú vị khác do API cung cấp. Trong trường hợp bạn cần dùng thử các API này trong trình duyệt, vui lòng thử sử dụng Tham khảo API swagger.

Cuối cùng, xin lưu ý rằng tất cả SDK đám mây của chúng tôi đều được xuất bản theo giấy phép MIT, vì vậy bạn có thể cân nhắc tải xuống mã nguồn hoàn chỉnh từ GitHub và sửa đổi nó theo yêu cầu của mình. Cuối cùng, nếu bạn gặp phải bất kỳ sự cố nào trong khi sử dụng API, bạn có thể cân nhắc liên hệ với chúng tôi để được giải quyết nhanh chóng thông qua [diễn đàn hỗ trợ sản phẩm] miễn phí]9.

Những bài viết liên quan

Vui lòng truy cập các liên kết sau để tìm hiểu thêm về: