1.0.0 • Published 3 years ago

optimized-image v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

📦 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

PropDescripciónTipoRequeridoDefaultVersión
srcLink de la imagen o la imagen en base64string1.0
altDescripción de la imagenstring1.0
filtersFiltros que serán aplicados por thumborFiltersOpcional1.0
widthAncho de la imagennumber1.0
heighAltura de la imagennumber1.0
classNameClassName de la imagenstringOpcional1.0
fitInEsta opción hace que la imagen encaje entre el width y height que definiste y el espacio sobrante se puede tratar con el filtro fillbooleanOpcionalfalse1.0
wrapperClassNameClassName de el contenedor de la imagen.stringOpcional1.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.

FiltroDescripciónTipoUsoRango
autojpgEste filtro hace override a la variable AUTO_PNG_TO_JPG en la configuración'enabled'autojpg: 'enabled'
background_colorDefine el color de fondo de la imagen, muy útil al momento de convertir PNG a JPG. Soporta hex 'ff0000', nombre 'blue' y 'auto'stringbackground_color: 'ff0000'
blurEste filtro hace que la imagen se vea borrosa. El segundo valor corresponde al sigma del filtro gaussian, es opcionalstringblur: '50,4'0 - 150
brightnessAumenta o Baja el brillo de la imagen. Número aplicado como porcentajenumberbrightness: -50-100 - 100
contrastAumenta o Baja el contraste de la imagen. Número aplicado como porcentajenumbercontrast: 30-100 - 100
convolutionEste filtro corre una convolución de matriz en la imagen.stringconvolution: '1;2;1;2;4;2;1;2;1,3,true'
equalizeEsta opción ecualiza la distribución de los colores en la imagenbooleanequalize: true
extract_focalPuedes revisar sobre este filtro aquí. Para esto probablemente necesitaras usar el useThumbor()booleanextract_focal: true
fillEste 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)stringfill: 'blue,true'
focalEste filtro añade un punto focal el cual se usará en una futura transformación (extract_focal)stringfocal: '146x206:279x360'
formatEste filtro especifica el formato de la imagen. Pueden ser "webp", "jpeg", "gif" o "png"stringformat: 'png'
grayscaleEste filtro hace que la imagen se convierta a blanco y negrobooleangrayscale: true
max_bytesEste filtro baja la calidad de la imagen de manera automática para que el peso coincida con el especificadonumbermax_bytes: 40000
no_upscaleEste 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.booleanno_upscale: true
noiseEste filtro agrega ruido a la imagen. Número aplicado como porcentajenumbernoise: 500 - 100
percentageEste filtro especifica un porcentaje de proporción para cuando la imagen esta siendo cortadanumberpercentage: 0.10.0 - 1.0
qualityEste filtro cambia la calidad de la imagen, solo JPEG, no afecta a PNG o GIFS. Número aplicado como porcentajenumberquality: 800 - 100
rgbEste filtro cambia la cantidad de color que es aplicado en los 3 canales, rojo, verde y azul respectivamente, Número aplicado como porcentajestringrgb: '-20,50,-20'-100 - 100
rotateEste filtro rota la imagen según el valor ingresado, números mayores a 360 serán transformados a un equivalente entre 0 y 359numberrotate: 1800 - 359
rounded_cornerEste 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 transparentestringrounded_corner: '20|40,255,255,255,true'
sharpenEste 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 luminanciastringsharpen: '1.5,0.5,true'Monto 0.0 - 10.0 Radio 0.0 - 0.2
stretchEste filtro aplica el resize sin autocrop si no se aplicara el fit-inbooleanstretch: true
strip_exifEste filtro quita cualquier información EXIF en la imagen resultantebooleanstrip_exif: true
strip_iccEste filtro quita cualquier información ICC en la imagenbooleanstrip_icc: true
upscaleEste 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 fitInbooleanupscale: true
watermarkEste filtro añade una marca de agua, la formula es 'imgUrl,x,y,alpha,w_ratio,h_ratio'stringwatermark: 'http://hola.cl/img.png,10p,-20p,50'