Está en la página 1de 9

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

FACULTAD DE INFORMÁTICA Y ELECTRÓNICA


SOFTWARE

CONSTRUCCIÓN DE SOFTWARE

PRÁCTICA DE LABORATORIO Nº 3

1. DATOS GENERALES:

NOMBRE: (estudiante(s) CODIGO(S):

Silvia Veloz 6492

FECHA DE REALIZACIÓN: FECHA DE ENTREGA:

27/07/2021 27/07/2021

2. OBJETIVO

 Elegir una API e implementar un cliente (sencillo) en el lenguaje de preferencia para


consumir dicha API.

3. DESARROLLO

¿Qué es una API?

El término API es una abreviatura de Application Programming Interfaces, que en españ ol


significa interfaz de programació n de aplicaciones. Se trata de un conjunto de definiciones y
protocolos que se utiliza para desarrollar e integrar el software de las aplicaciones,
permitiendo la comunicació n entre dos aplicaciones de software a través de un conjunto de
reglas.

Así pues, podemos hablar de una API como una especificació n formal que establece có mo un
mó dulo de un software se comunica o interactú a con otro para cumplir una o muchas
funciones.[ CITATION YÚB19 \l 3082 ]
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

TINYPNG

¿Qué hace TinyPNG?

TinyPNG utiliza técnicas inteligentes de compresió n con pérdida para reducir el


tamañ o de archivo de sus archivos PNG. Al disminuir selectivamente el nú mero de colores en
la imagen, se requieren menos bytes para almacenar los datos. ¡El efecto es casi invisible, pero
hace una gran diferencia en el tamañ o del archivo!

¿Por qué se debería usar TinyPNG?

PNG es ú til porque es el ú nico formato ampliamente admitido que puede


almacenar imágenes parcialmente transparentes. El formato usa compresió n, pero los
archivos aú n pueden ser grandes. Utilice TinyPNG para reducir las imá genes de sus
aplicaciones y sitios. Utilizará menos ancho de banda y se cargará más rápido.[ CITATION
Tyn21 \l 3082 ]

L6a API de TinyPNG ayuda a comprimir y reducir el tamañ o de archivos JPEF y PNG.

 Es una API oficial.

 Ofrece soporte SSL

 Requiere clave API

 Formato de solicitud y respuesta: JSON

Características

 Misma API para imágenes JPEG y PNG

La API comprime imá genes JPEG y PNG. Solo tienes que subir tu imagen de origen y descargar
el resultado. Todo lo demá s sucede automáticamente.

 Sube directamente o proporciona una URL a la imagen.

Puede cargar imá genes directamente o especificar una URL a la imagen que desea comprimir.

 Conservar metadatos

Puede optar por conservar la información de copyright, la ubicación GPS y la fecha de


creación en las imá genes JPEG comprimidas. En el caso de imá genes PNG, se puede conservar
la informació n de copyright.

 Amazon S3 y Google Cloud Storage (nuevo)


ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

Puede indicar a la API que guarde las imá genes optimizadas directamente en sus depósitos
de Amazon S3 o Google Cloud Storage. Al hacer esto, también puede configurar los
encabezados Cache-Control y Expires personalizados.

 Cambio de tamaño de imagen perfecto

La API puede cambiar el tamaño de sus imá genes y optimizarlas. Solo tienes que subir el


original una vez y luego generar los tamañ os de imagen que necesitas. El cambio de tamañ o
incluye una escala de gamma correcta, correcció n de bordes de transparencia bicú bica y
nitidez de imagen natural.

 Detección de áreas de interés

Aproveche el recorte inteligente para crear miniaturas con diferentes proporciones. La


API cambiará el tamañ o de sus imá genes y recortará las partes que sean visualmente menos
interesantes.

 Detección de imágenes recortadas (nuevo)

Hemos agregado un nuevo algoritmo para detectar objetos independientes sobre fondos


planos. La API agregará espacio de fondo o eliminará á reas superfluas cuando se cambie la
relació n de aspecto. De esta manera, el objeto en su imagen permanecerá independiente y no
se cortará en los bordes al cambiar el tamañ o. [ CITATION Tin21 \l 3082 ]

Referencias de API
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

JAVA

 Instalación

Puede usar el cliente Java como una dependencia de Maven agregando lo siguiente a su


aplicació n pom.xml. Para evitar cambios rotos en su có digo cuando actualizamos el cliente,
reemplácelo RELEASE con una versió n específica:

<dependency>
<groupId>com.tinify</groupId>
<artifactId>tinify</artifactId>
<version>RELEASE</version>
</dependency>

Si usa Gradle en su lugar, puede usar lo siguiente:


dependencies {
compile 'com.tinify:tinify:latest.release'
}
 Autenticación

Para utilizar la API, debe proporcionar su clave de API. Puede obtener una clave


API registrá ndose con su nombre y direcció n de correo electró nico. ¡Mantenga siempre en
secreto su clave API!

import com.tinify.*;
public class Example {
public static void main(String[] args) {
Tinify.setKey("YOUR_API_KEY");
}
}

Todas las solicitudes se realizará n a través de una conexió n HTTPS cifrada.

Puede indicar al cliente de la API que realice todas las solicitudes a través de un proxy
HTTP. Configure la URL de su servidor proxy, que opcionalmente puede incluir credenciales.

Tinify.setProxy("http://user:pass@192.168.0.1:8080");

 Comprimir imágenes

Puede cargar cualquier imagen JPEG o PNG a la API de Tinify para comprimirla. Detectaremos
automá ticamente el tipo de imagen y la optimizaremos con el motor TinyPNG o TinyJPG en
consecuencia. La compresió n comenzará tan pronto como cargue un archivo o proporcione la
URL a la imagen.

Puede elegir un archivo local como fuente y escribirlo en otro archivo.

Source source = Tinify.fromFile("unoptimized.jpg");


ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

source.toFile("optimized.jpg");

También puede cargar una imagen desde un bú fer (una cadena con binario) y obtener los
datos de la imagen comprimida.

byte[] sourceData = Files.readAllBytes(Paths.get("unoptimized.jpg"));


byte[] resultData = Tinify.fromBuffer(sourceData).toBuffer();

Puede proporcionar una URL a su imagen en lugar de tener que cargarla.

Source source = Tinify.fromUrl("https://tinypng.com/images/panda-happy.png");


source.toFile("optimized.jpg");

 Cambiar el tamaño de las imágenes

Utilice la API para crear versiones redimensionadas de sus imá genes cargadas. Al permitir que
la API maneje el cambio de tamañ o, evitará tener que escribir ese có digo usted mismo y solo
tendrá que cargar su imagen una vez. Las imá genes redimensionadas se comprimirá n de
forma ó ptima con una apariencia agradable y nítida.

También puede aprovechar el recorte inteligente para crear miniaturas que se centren en las
á reas má s importantes visualmente de su imagen.

El cambio de tamañ o cuenta como una compresió n adicional. Por ejemplo, si carga una sola
imagen y recupera la versió n optimizada má s 2 versiones redimensionadas, esto contará
como 3 compresiones en total.

Para cambiar el tamañ o de una imagen, llame al resize método en una fuente de imagen:

Source source = Tinify.fromFile("large.jpg");


Options options = new Options()
.with("method", "fit")
.with("width", 150)
.with("height", 100);
Source resized = source.resize(options);
resized.toFile("thumbnail.jpg");

PYTHON

 Comprimir imágenes

Puede cargar cualquier imagen JPEG o PNG a la API de Tinify para comprimirla. Detectaremos
automá ticamente el tipo de imagen y la optimizaremos con el motor TinyPNG o TinyJPG en
consecuencia. La compresió n comenzará tan pronto como cargue un archivo o proporcione la
URL a la imagen.

Ejemplo de carga desde archivo


ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

Puede cargar un archivo local. Los datos de la publicació n contienen la imagen binaria.

POST /shrink HTTP/1.1


Host: api.tinify.com
Authorization: Basic YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1
[binary]

HTTP/1.1 201 Created


Compression-Count: 1
Location: https://api.tinify.com/output/2xnsp7jn34e5.jpg
Content-Type: application/json

{
"input": {
"size": 207565,
"type": "image/jpeg"
}
}

Por ejemplo, si tiene un archivo nombrado unoptimized.jpg en el directorio actual:

curl https://api.tinify.com/shrink \
--user api:YOUR_API_KEY \
--data-binary @unoptimized.jpg \
--dump-header /dev/stdout

 Carga de ejemplo desde URL

También puede proporcionar una URL a su imagen en lugar de tener que cargarla. La API
acepta un cuerpo JSON con la URL de la imagen como source ubicació n.

POST /shrink HTTP/1.1


Host: api.tinify.com
Authorization: Basic YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1
Content-Type: application/json

{
"source": {
"url": "https://tinypng.com/images/panda-happy.png"
}
}
HTTP/1.1 201 Created
Compression-Count: 1
Location: https://api.tinify.com/output/cciutldm823k9e9r.png
Content-Type: application/json

{
"output": {
"size": 30734,
"type": "image/png"
}
}
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

Por ejemplo, si tiene https://tinypng.com/images/panda-happy.png como


fuente:

curl https://api.tinify.com/shrink \
--user api:YOUR_API_KEY \
--header "Content-Type: application/json" \
--data '{"source": {"url": "https://tinypng.com/images/panda-
happy.png"} }' \
--dump-header /dev/stdout

 Opciones de solicitud

El method describe la forma en que se cambiará el tamañ o de su imagen. Está n disponibles


los siguientes métodos:

Scale: Reduce la imagen proporcionalmente. Debe


proporcionar un objetivo width o un objetivo height,
pero no ambos. La imagen escalada tendrá exactamente el
ancho o alto proporcionado.

Fit: Reduce la imagen


proporcionalmente para que se ajuste a las
dimensiones dadas. Debe proporcionar tanto
a width como a height. La imagen escalada no
excederá ninguna de estas dimensiones.

Cover: Escala la imagen proporcionalmente y la recorta si


es necesario para que el resultado tenga exactamente las
dimensiones dadas. Debe proporcionar tanto a width
como a height. Las partes de la imagen que se recortan se
determinan automáticamente. Un algoritmo inteligente
determina las á reas má s importantes de su imagen.

Thumb: Una
implementació n má s avanzada de la cubierta
que también detecta imá genes recortadas con
fondos lisos. La imagen se reduce a la width
y height usted proporciona. Si se detecta una
imagen con un objeto independiente, agregará
má s espacio de fondo cuando sea necesario
o recortará  las partes sin importancia. Esta
funció n es nueva.[ CITATION TYN21 \l 3082 ]
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

Si las dimensiones de destino son má s grandes que las dimensiones originales, la imagen no se
ampliará . Se evita la ampliació n para proteger la calidad de sus imá genes.

Implementación en Python

4. CONCLUSIONES
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
SOFTWARE

o Podemos concluir que esta API es muy ú til en el proceso de reducció n de


tamañ o de imá genes, esto ayudará a utilizar menos ancho de banda y se cargará má s
rá pido.
o Concluimos que con esta API Los archivos producidos se muestran
perfectamente en todos los navegadores modernos, incluidos los dispositivos
mó viles.
5. RECOMENDACIONES

Como recomendació n podemos decir que se puede ingresar al sitio web a referencias
de API en la cual nos mostrara como se puede implementarla en los diferentes
lenguajes de programació n.

6. REFERENCIAS

 FERNANDEZ, Y. (23 de 8 de 2019). Xataka Basics. Obtenido de


https://www.xataka.com/basics/api-que-sirve
 Tinypng. (21 de 07 de 2021). Obtenido de https://tinypng.com/developers?ref=apilist.fun
 TyniPng. (06 de 2021). Obtenido de https://tinypng.com/
TYNIPNG. (07 de 2021). Obtenido de https://tinypng.com/developers?ref=apilist.fu

También podría gustarte