foto duplicada

Encuentre imágenes duplicadas usando Java Cloud SDK

La imagen JPG es un formato popular para fines de impresión y edición. Además, es un formato de imagen popular para compartir fotos y otras imágenes en Internet y entre usuarios de dispositivos móviles y PC. El pequeño tamaño de archivo de las imágenes JPG permite almacenar miles de imágenes en un espacio de memoria reducido. Ahora que la compresión tiene pérdida, significa que cierta información innecesaria se elimina de forma permanente. Por otro lado, la mayor ventaja de PNG sobre JPEG es que la compresión no tiene pérdidas, lo que significa que no hay pérdida de calidad cada vez que se abre y se guarda de nuevo. PNG también maneja bien las imágenes detalladas y de alto contraste. Ahora, en este artículo, vamos a discutir los detalles sobre cómo convertir JPG a PNG usando Java Cloud SDK

API de conversión de imágenes

Nuestra API basada en REST ofrece las capacidades para crear, editar y transformar archivos de imagen a una variedad de formatos de archivo admitidos. Ahora, para implementar la función para cargar y convertir jpg a png transparente en la aplicación Java, necesitamos usar Aspose.Imaging Cloud SDK for Java ya que es un contenedor alrededor de la API de la nube. Entonces, el siguiente paso es agregar su referencia en el proyecto Java al incluir la siguiente información en pom.xml del proyecto de tipo de compilación 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>

Una vez que se ha agregado la referencia de JDK en el proyecto, el siguiente paso importante es crear una cuenta gratuita en Aspose Cloud Dashboard. Simplemente regístrese para una prueba gratuita a través de una dirección de correo electrónico válida. Ahora inicie sesión con la cuenta recién creada y busque/cree el ID del cliente y el secreto del cliente en Cloud Dashboard. Estos detalles son necesarios para fines de autenticación en las siguientes secciones.

Convertir JPG a PNG en Java

Ahora analicemos los detalles sobre cómo podemos convertir JPG a PNG usando un fragmento de código Java. Para poder realizar la conversión, contamos con dos APIs para convertir una imagen a otro formato:

La API GET espera que primero subamos una imagen a Cloud Storage y luego pasemos su nombre en la URL de la API. Después de actualizar los parámetros de la imagen, la API devuelve la imagen actualizada en la respuesta. Si desea guardar la imagen actualizada en Cloud Storage, debe hacerlo explícitamente como se muestra en los ejemplos a continuación.

Por otro lado, al llamar a la segunda API POST, puede pasar directamente la imagen en el cuerpo de la solicitud. También le permite guardar la imagen actualizada en Cloud Storage especificando el valor del parámetro outPath. Sin embargo, si no especifica el valor, la respuesta contiene una imagen transmitida.

  • Cree una instancia de ImagingApi basada en sus credenciales de cliente personalizadas
  • Lea todos los archivos JPG de la carpeta local usando el objeto File[]
  • Iterar a través de los archivos en la matriz y alcanzar el contenido de la imagen individual en la instancia de byte []
  • Ahora cree un objeto de CreateConvertedImageRequest donde especificamos el formato de imagen de salida como PNG
  • Llame al método createConvertedImage(…) que guarda JPG como PNG y devuelve el resultado como flujo de respuesta
  • Finalmente, guarde el archivo PNG en la unidad local usando el objeto FileOutputStream
// Obtenga ClientID y ClientSecret de https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// crear objeto de imagen
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Obtener todos los archivos de la carpeta
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Configure las extensiones de imagen requeridas aquí.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//Lista filtrada de archivos de imagen JPG
List<File> acceptedImages = new ArrayList<>();

// Iterar a través de cada archivo de imagen leído desde la carpeta local			 
for (File file : allFiles) {
    //Analizar la extensión del archivo
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Compruebe si la extensión aparece en la lista de extensiones de imágenes admitidas
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Agregar la imagen a la lista filtrada
	acceptedImages.add(file);
                  
    // leer contenido de imagen JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // crear una solicitud de conversión de imagen con el formato resultante como PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // convertir JPG a PNG y devolver el archivo resultante en el flujo de respuesta
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Guardar la imagen exportada en el almacenamiento local
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Cambie JPG a PNG usando los comandos cURL

Como podemos acceder a las API REST usando los comandos cURL, en esta sección, estamos explorando los detalles para convertir JPG a PNG transparente. Ahora, como requisito previo, primero debemos generar un token de acceso JWT (basado en las credenciales del cliente) mientras ejecutamos el siguiente comando.

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"

Ahora vamos a usar la llamada API ConvertImage, espera que el JPG de entrada ya esté disponible en el almacenamiento en la nube. Ahora, ejecute el siguiente comando para cambiar JPG a 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

Conclusión

Este artículo ha proporcionado algunos detalles asombrosos sobre cómo podemos convertir JPG a PNG usando un fragmento de código Java. Del mismo modo, también hemos discutido los pasos para convertir JPG a PNG transparente usando los comandos cURL. Tenga en cuenta que la Documentación del producto es un lugar increíble para conocer otras características interesantes que ofrece la API. En caso de que necesite probar estas API dentro del navegador, intente usar la Referencia de la API de Swagger.

Penúltimo, tenga en cuenta que todos nuestros SDK de Cloud se publican con licencia MIT, por lo que puede considerar descargar el código fuente completo de GitHub y modificarlo según sus requisitos. Por último, si encuentra algún problema al usar la API, puede considerar comunicarse con nosotros para una resolución rápida a través del foro de soporte del producto gratuito.

Artículos relacionados

Visite los siguientes enlaces para obtener más información sobre: