1.0.0 • Published 3 years ago
optimized-image v1.0.0
📦 Instalación
El paquete es privado, por lo tanto debes estar ingresado con la cuenta de npm en la terminal.
npm install @marioarancibia/optimized-image
yarn add @marioarancibia/optimized-image
Añade a tu .env las variables
Next JS
NEXT_PUBLIC_THUMBOR_KEY=12345678
NEXT_PUBLIC_THUMBOR_URL=https://thumbor.com
Otro
THUMBOR_KEY=12345678
THUMBOR_URL=https://thumbor.com
🔨 Uso del componente
Optimized-Image
import { OptimizedImage } from '@marioarancibia/optimized-image';
const App = () => (
<>
<OptimizedImage
src="https://clycme-images.s3.us-east-2.amazonaws.com/images/logo/c_logo.png"
alt="Logo clyc.me"
width={100}
height={100}
/>
</>
);
Esto generará la url desde thumbor y te devolverá un <img />
con todos los props que le pasaste a este componente.
useThumbor
import { useThumbor } from '@marioarancibia/optimized-image';
const imageUrl = useThumbor()
.filter('fill(ff0000)')
.setImagePath('https://imagenes.com/imagen1.jpg')
.resize(300, 200)
.buildUrl();
Puedes llegar a necesitarlo si aplicaras algun filtro como el extact_focal()
⌨️ Documentación
Props del componente OptimizedImage
Prop | Descripción | Tipo | Requerido | Default | Versión |
---|---|---|---|---|---|
src | Link de la imagen o la imagen en base64 | string | 1.0 | ||
alt | Descripción de la imagen | string | 1.0 | ||
filters | Filtros que serán aplicados por thumbor | Filters | Opcional | 1.0 | |
width | Ancho de la imagen | number | 1.0 | ||
heigh | Altura de la imagen | number | 1.0 | ||
className | ClassName de la imagen | string | Opcional | 1.0 | |
fitIn | Esta opción hace que la imagen encaje entre el width y height que definiste y el espacio sobrante se puede tratar con el filtro fill | boolean | Opcional | false | 1.0 |
wrapperClassName | ClassName de el contenedor de la imagen. | string | Opcional | 1.0 |
Filtros
Filtros a aplicar por thumbor
Lo que escribas en los filtros será lo que irá dentro del paréntesis
Por ejemplo
<OptimizedImage filters={{ fill: 'ff0000' }} />
Se aplicará como fill(ff0000)
Si quieres revisar la documentación oficial de thumbor, el link es este.
Los valores que esten rodeados por , son opcionales.
Filtro | Descripción | Tipo | Uso | Rango |
---|---|---|---|---|
autojpg | Este filtro hace override a la variable AUTO_PNG_TO_JPG en la configuración | 'enabled' | autojpg: 'enabled' | |
background_color | Define el color de fondo de la imagen, muy útil al momento de convertir PNG a JPG. Soporta hex 'ff0000', nombre 'blue' y 'auto' | string | background_color: 'ff0000' | |
blur | Este filtro hace que la imagen se vea borrosa. El segundo valor corresponde al sigma del filtro gaussian, es opcional | string | blur: '50,4' | 0 - 150 |
brightness | Aumenta o Baja el brillo de la imagen. Número aplicado como porcentaje | number | brightness: -50 | -100 - 100 |
contrast | Aumenta o Baja el contraste de la imagen. Número aplicado como porcentaje | number | contrast: 30 | -100 - 100 |
convolution | Este filtro corre una convolución de matriz en la imagen. | string | convolution: '1;2;1;2;4;2;1;2;1,3,true' | |
equalize | Esta opción ecualiza la distribución de los colores en la imagen | boolean | equalize: true | |
extract_focal | Puedes revisar sobre este filtro aquí. Para esto probablemente necesitaras usar el useThumbor() | boolean | extract_focal: true | |
fill | Este filtro retorna una imagen con el mismo tamaño que la pediste independiente de su relación de aspecto. Rellena el espacio faltante con el color especificado. Usado frecuentemente con la propiedad fitIn. El primer valor es el color, el segundo es true/1 o false/0 para definir si se rellena lo transparente (PNG) | string | fill: 'blue,true' | |
focal | Este filtro añade un punto focal el cual se usará en una futura transformación (extract_focal) | string | focal: '146x206:279x360' | |
format | Este filtro especifica el formato de la imagen. Pueden ser "webp", "jpeg", "gif" o "png" | string | format: 'png' | |
grayscale | Este filtro hace que la imagen se convierta a blanco y negro | boolean | grayscale: true | |
max_bytes | Este filtro baja la calidad de la imagen de manera automática para que el peso coincida con el especificado | number | max_bytes: 40000 | |
no_upscale | Este filtro le dice a thumbor que no cambie el tamaño de la imagen. Si la imagen es de 200x300 y la pides 400x600, te la devolverá 200x300 igual. | boolean | no_upscale: true | |
noise | Este filtro agrega ruido a la imagen. Número aplicado como porcentaje | number | noise: 50 | 0 - 100 |
percentage | Este filtro especifica un porcentaje de proporción para cuando la imagen esta siendo cortada | number | percentage: 0.1 | 0.0 - 1.0 |
quality | Este filtro cambia la calidad de la imagen, solo JPEG, no afecta a PNG o GIFS. Número aplicado como porcentaje | number | quality: 80 | 0 - 100 |
rgb | Este filtro cambia la cantidad de color que es aplicado en los 3 canales, rojo, verde y azul respectivamente, Número aplicado como porcentaje | string | rgb: '-20,50,-20' | -100 - 100 |
rotate | Este filtro rota la imagen según el valor ingresado, números mayores a 360 serán transformados a un equivalente entre 0 y 359 | number | rotate: 180 | 0 - 359 |
rounded_corner | Este filtro hace que las esquinas sean redondeadas usando el color especificado como color de fondo. Formula: a|b,r,g,b,transparent. a es la cantidad de pixeles, b no es requerido pero es el valor de la elipse del radio, r,g,b son los colores y transparent es opcional para que el fondo sea transparente | string | rounded_corner: '20|40,255,255,255,true' | |
sharpen | Este filtro hace que los bordes dentro de la imagen se vean mas definidos. El primer valor es la cantidad, el segundo es el radio y el ultimo la luminancia | string | sharpen: '1.5,0.5,true' | Monto 0.0 - 10.0 Radio 0.0 - 0.2 |
stretch | Este filtro aplica el resize sin autocrop si no se aplicara el fit-in | boolean | stretch: true | |
strip_exif | Este filtro quita cualquier información EXIF en la imagen resultante | boolean | strip_exif: true | |
strip_icc | Este filtro quita cualquier información ICC en la imagen | boolean | strip_icc: true | |
upscale | Este filtro le dice a thumbor que agrande la imagen respetando la relación de aspecto, es decir, si la imagen es 300x200 y la pides en 600x500, la imagen será devuelta en 600x400. Este filtro solo tiene sentido con la opcion fitIn | boolean | upscale: true | |
watermark | Este filtro añade una marca de agua, la formula es 'imgUrl,x,y,alpha,w_ratio,h_ratio' | string | watermark: 'http://hola.cl/img.png,10p,-20p,50' |