Nada melhora as vendas na Web do que imagens e vídeos. O senhor pode descrever um item de várias maneiras, mas uma imagem pode atrair o usuário, várias fotos (incluindo um bom recurso de zoom) podem fechar a venda. O que isso significa? É importante fornecer aos usuários imagens de qualidade, detalhadas e com bom desempenho, tanto para desktop quanto para dispositivos móveis. Felizmente Cloudinary oferece uma variedade de métodos de otimização e recursos de mídia para que o senhor possa exibir seus produtos de forma otimizada e personalizável.
Vamos dar uma olhada em alguns dos recursos e métodos Cloudinary fornece otimização, criação e entrega de imagens em sites de comércio eletrônico!
Remoção de antecedentes
A menos que esteja usando um fotógrafo profissional, é provável que o senhor queira retocar suas fotos, mas isso exige tempo e conhecimento. Em vez de gastar muito tempo ou dinheiro na remoção do fundo, faça upload da imagem para o Cloudinary para remoção do plano de fundo:
// npm install cloudinary
var cloudinary = require('cloudinary');
// Set your API information
cloudinary.config({
cloud_name: 'david-walsh-blog',
api_key: '############',
api_secret: '############'
});
// Upload an image,
cloudinary.uploader.upload('sample-photos/my-photo.jpg', function(result) {
// Log out the result to get the URL of the image
console.log(result);
// Image url is: result.url / result.secure_url
}, {
public_id: "my-photo",
background_removal: "remove_the_background"
});
![]() |
![]() |
Tomar a iniciativa de remover o fundo da foto, se necessário, prepara o cenário para mais transformações. Limpeza!
Dimensionamento fácil e dinâmico de imagens por URL
O recurso mais simples de transformação de imagens é o dimensionamento dinâmico de imagens, que pode ser feito modificando ligeiramente o URL de uma imagem:
<!-- Size image to 300x300 --> <img src="https://res.cloudinary.com/david-wash-blog/image/upload/w_300,h_300/usa">
Se o senhor estiver usando A incrível API React.js do Cloudinary, o senhor pode simplesmente adicionar o width e height para os atributos do Image e a imagem será transformada dinamicamente para esse tamanho:
<Image publicId="ringo" width="300" height="300">
O dimensionamento personalizado de imagens otimiza o tempo de carregamento e o tempo de renderização!
Recorte com reconhecimento de conteúdo
A maioria dos sites prefere que todas as imagens de produtos sejam cortadas em determinados tamanhos, o que torna a exibição de imagens de produtos em modelos fácil e previsível. No entanto, haverá momentos em que as miniaturas precisarão ser usadas e seria bom se apenas a imagem fosse cortada para o ponto focal principal. O Cloudinary pode fazer isso com corte com reconhecimento de conteúdo!
<img src="https://res.cloudinary.com/david-wash-blog/image/upload/g_auto/diana">
![]() |
![]() |
Com o recorte consciente de conteúdo do Cloudinary, o senhor pode procurar um rosto ou outro ponto focal enquanto recorta a imagem no tamanho certo!
Camadas
O recurso de transformação de camadas é um dos recursos mais incríveis do Cloudinary. Usando a API do Cloudinary, o senhor pode fazer upload de imagens que podem sobrepor outras imagens! Pense em uma imagem de etiqueta de preço sobre a imagem do seu produto, juntamente com algum texto de preço:
<Image publicId="diana" width="400"> <Transformation raw_transformation="200" /> <Transformation angle="20" crop="scale" gravity="north_west" overlay="price-tag" width="100" /> <Transformation angle="20" color="rgb:fff" gravity="north_west" overlay="text:fira%20mono_16_bold:$$(price)" x="45" y="27" /> </Image>
O resultado <img> e o URL resultantes são os seguintes:
https://res.cloudinary.com/david-wash-blog/image/upload/$price_!200!/a_20,c_scale,g_north_west,l_price-tag,w_100/a_20,co_rgb:fff,g_north_west,l_text:fira%20mono_16_bold:$$(price),x_45,y_27/diana
O senhor pode completar essa estratificação com qualquer outra transformação, de modo que possa sobrepor imagem e texto em uma imagem recortada com consciência de conteúdo de tamanho dinâmico. Essa é uma das funções realmente poderosas do Cloudinary!
Dicas para clientes
Há alguns meses, mostrei aos senhores o novo suporte ao dicas de clientes recurso dos navegadores. As dicas do cliente permitem que o navegador compartilhe as dimensões da janela de visualização nas solicitações para que os servidores possam gerar e retornar dinamicamente uma imagem otimizada:
<meta http-equiv="Accept-CH" content="DPR, Width">
O Cloudinary suporta dicas de cliente, portanto, certifique-se de adicionar o <meta> para habilitá-las!
Juntando tudo!
Usando as técnicas citadas acima, juntamente com algumas outras, criei uma exibição simples de produtos em uma única página e um carrinho de compras usando cloudinary-react:
import React, { Component } from 'react';
import './App.css';
import { Image, Transformation, CloudinaryContext } from 'cloudinary-react';
let products = [
{ id: 'diana', title: 'Pricess Di', price: '200' },
{ id: 'obama', title: 'President Obama', price: '150' },
{ id: 'usa', title: 'Innauguration', price: '75' }
];
class App extends Component {
state = { currentProduct: products[0], cart: [] };
addToCart = (publicId) => {
this.state.cart.push(this.state.currentProduct);
this.setState({ cart: this.state.cart });
}
render() {
return (
<div>
<CloudinaryContext cloudName="david-wash-blog">
<div className="detail">
<h2>Product Detail</h2>
<Image
publicId={this.state.currentProduct.id}
width="400">
<Transformation raw_transformation={`$price_!${this.state.currentProduct.price}!`} />
<Transformation angle="20" crop="scale" gravity="north_west" overlay="price-tag" width="100" />
<Transformation angle="20" color="rgb:fff" gravity="north_west" overlay="text:fira%20mono_16_bold:$$(price)" x="45" y="27" />
</Image>
<button onClick={this.addToCart}>Add to Cart</button>
</div>
<div className="available">
<h2>Products in Stock</h2>
<p>Click the thumbnail below to view a larger image.</p>
{products.map(product => {
return <Image key={product.id} onClick={() =>this.setState({ currentProduct: product })} publicId={product.id} width="200"/>;
})}
</div>
<div className="cart">
<h2>Your Cart</h2>
{this.state.cart.length ? this.state.cart.map(product => {
return <Image key={product.id} gravity="auto" crop="crop" publicId={product.id} width="100"/>;
}) : 'Cart is empty'}
</div>
</CloudinaryContext></div>
);
}
}
export default App;
Todas as imagens são dimensionadas dinamicamente, as sobreposições de preço são adicionadas às imagens de detalhes do produto e qualquer produto adicionado ao carrinho fornecerá imagens com reconhecimento de conteúdo como miniaturas, de modo que a miniatura pode ser pequena, mas o usuário sabe exatamente os detalhes necessários para descobrir o que é o item.
Embora essas técnicas tenham sido apresentadas como usos incríveis de recursos de comércio eletrônico, a verdade é que cada um desses recursos pode ser usado em qualquer situação para melhorar o desempenho e a visibilidade. Não se esqueça de que o Cloudinary fornece APIs PHP, Node.js, Ruby, Java, Python e outras para carregar, modificar e exibir suas imagens. Dê Cloudinary o senhor não ficará desapontado!



