foto duplicada

Encontre imagens duplicadas usando Java Cloud SDK

A imagem JPG é um formato popular para fins de impressão e edição. Além disso, é um formato de imagem popular para compartilhar fotos e outras imagens na internet e entre usuários de celular e PC. O pequeno tamanho de arquivo de imagens JPG permite armazenar milhares de imagens em um pequeno espaço de memória. Agora, como a compactação é com perdas, isso significa que certas informações desnecessárias são excluídas permanentemente. Por outro lado, a maior vantagem do PNG sobre o JPEG é que a compactação é sem perdas, ou seja, não há perda de qualidade toda vez que ele é aberto e salvo novamente. O PNG também lida bem com imagens detalhadas e de alto contraste. Agora, neste artigo, vamos discutir os detalhes de como converter JPG para PNG usando Java Cloud SDK

API de conversão de imagem

Nossa API baseada em REST oferece os recursos para criar, editar e transformar arquivos de imagem em vários formatos de arquivo suportados. Agora, para implementar o recurso para carregar e converter jpg em png transparente no aplicativo Java, precisamos usar Aspose.Imaging Cloud SDK for Java como um wrapper em torno da Cloud API. Portanto, a próxima etapa é adicionar sua referência no projeto java, incluindo as seguintes informações no pom.xml do projeto de tipo de compilação maven.

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

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

Depois que a referência JDK foi adicionada ao projeto, a próxima etapa importante é criar uma conta gratuita no Aspose Cloud Dashboard. Basta se inscrever para uma avaliação gratuita através de um endereço de e-mail válido. Agora faça o login usando a conta recém-criada e procure/crie ID do cliente e Segredo do cliente em Cloud Dashboard. Esses detalhes são necessários para fins de autenticação nas seções a seguir.

Converter JPG para PNG em Java

Agora vamos discutir os detalhes de como podemos converter JPG para PNG usando o trecho de código Java. Para realizar a conversão, temos duas APIs para converter uma imagem para outro formato:

A API GET espera que primeiro façamos o upload de uma imagem para o Cloud Storage e, em seguida, passemos seu nome na URL da API. Depois de atualizar os parâmetros da imagem, a API retorna a imagem atualizada na resposta. Se você quiser salvar a imagem atualizada no Cloud Storage, você precisa fazer isso explicitamente, conforme mostrado nos exemplos abaixo.

Por outro lado, ao chamar a segunda API POST, você pode passar a imagem diretamente no corpo da solicitação. Ele também permite que você salve a imagem atualizada no Cloud Storage especificando o valor do parâmetro outPath. No entanto, se você não especificar o valor, a resposta conterá uma imagem transmitida.

  • Crie uma instância de ImagingApi com base em suas credenciais de cliente personalizadas
  • Leia todos os arquivos JPG da pasta local usando o objeto File[]
  • Percorra os arquivos na matriz e alcance o conteúdo da imagem individual na instância byte[]
  • Agora crie um objeto de CreateConvertedImageRequest onde especificamos o formato da imagem de saída como PNG
  • Chame o método createConvertedImage(…) que salva JPG como PNG e retorna o resultado como fluxo de resposta
  • Por fim, salve o arquivo PNG na unidade local usando o objeto FileOutputStream
// Obtenha ClientID e ClientSecret em https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// criar objeto de imagem
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//Obtenha todos os arquivos da pasta
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//Defina as extensões de imagem necessárias aqui.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

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

// Iterar através de cada arquivo de imagem lido da pasta local			 
for (File file : allFiles) {
    //Analisar a extensão do arquivo
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //Verifique se a extensão está listada em supportedImageExtensions
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//Adicione a imagem à lista filtrada
	acceptedImages.add(file);
                  
    // leia o conteúdo da imagem JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // criar solicitação de conversão de imagem com formato resultante como PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // converter JPG para PNG e retornar o arquivo resultante no fluxo de resposta
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // Salve a imagem exportada no armazenamento local
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

Alterar JPG para PNG usando comandos cURL

Como podemos acessar APIs REST usando comandos cURL, nesta seção, estamos explorando os detalhes para converter JPG em PNG transparente. Agora, como pré-requisito, precisamos primeiro gerar um token de acesso JWT (com base nas credenciais do cliente) ao executar o seguinte 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"

Agora vamos usar a chamada da API ConvertImage, ela espera que o JPG de entrada já esteja disponível no armazenamento em nuvem. Agora execute o seguinte comando para alterar JPG para 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

Conclusão

Este artigo forneceu alguns detalhes surpreendentes sobre como podemos converter JPG para PNG usando o trecho de código Java. Da mesma forma, também discutimos as etapas para converter JPG em PNG transparente usando comandos cURL. Observe que a Documentação do produto é um lugar incrível para aprender sobre outros recursos interessantes oferecidos pela API. Caso precise experimentar essas APIs no navegador, tente usar a Referência da API do swagger.

Penúltimo, observe que todos os nossos Cloud SDKs são publicados sob a licença MIT, portanto, você pode fazer o download do código-fonte completo do GitHub e modificá-lo de acordo com seus requisitos. Por fim, se você encontrar algum problema ao usar a API, considere entrar em contato conosco para uma resolução rápida por meio do [fórum de suporte ao produto] gratuito 9.

Artigos relacionados

Por favor, visite os links a seguir para saber mais sobre: