Cropper
Um retângulo de recorte sobre uma imagem, sem dependências: trave uma proporção, use uma máscara circular, gire e espelhe, e recorte no servidor ou no navegador.
Importação
import { Cropper } from '@vitral/vue';Avatar
Um círculo trava a proporção em um e dispensa as alças: arraste o recorte, ou dê zoom nele. A pré-visualização ao lado é a mesma imagem sob uma caixa menor, não uma segunda renderização.
Use as setas para mover o recorte, Shift com uma seta para redimensioná-lo, Home e End para os cantos.
Uma proporção, com alças
Oito alças para o ponteiro, ocultas para tecnologias assistivas: o próprio retângulo é a única parada de tabulação.
Use as setas para mover o recorte, Shift com uma seta para redimensioná-lo, Home e End para os cantos.
Sem os terços
A guia fica ligada num retângulo e desligada num círculo, onde a regra dos terços não significa nada. `grid` decide por cima, num sentido ou no outro.
Use as setas para mover o recorte, Shift com uma seta para redimensioná-lo, Home e End para os cantos.
Livre, com proporções e giros
Um seletor trava a proporção; os giros de um quarto e os espelhamentos acompanham o recorte, que continua apontando para a mesma parte da imagem.
Use as setas para mover o recorte, Shift com uma seta para redimensioná-lo, Home e End para os cantos.
const crop = ref<CropValue>({ x: 160, y: 90, width: 1280, height: 720, rotate: 0 });Num diálogo
Onde um cropper costuma morar: uma foto é escolhida, recortada sobre a página, e o perfil só muda depois que ela é aceita. O diálogo dá a largura ao palco, então o recorte é medido em relação ao tamanho em que é de fato exibido.
Como usar
Use as setas para mover o recorte, Shift com uma seta para redimensioná-lo, Home e End para os cantos.
API
Lido de packages/vue/src/components/Cropper/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| src | string | A imagem. Qualquer coisa que um `<img>` aceite, incluindo uma URL de dados ou de objeto. |
| alt | string | Descreve a imagem, não o controle. Sem ele a imagem é decorativa. |
| aspect | number | string | null | Trava o recorte numa proporção: `1`, `'16:9'`, ou null para deixá-lo livre. |
| aspects | readonly CropAspect[] | Proporções a oferecer na barra de ferramentas. Omita-o e nenhum seletor é desenhado. |
| shape | 'rect' | 'circle' | `'circle'` mascara o recorte e a prévia, e trava a proporção em 1. |
| handles | boolean | Desenha as oito alças de redimensionamento. O padrão é true para um retângulo e false para um círculo. |
| rotatable | boolean | Oferece os giros de um quarto de volta e os espelhamentos. |
| zoomable | boolean | Oferece um controle deslizante de zoom. |
| grid | boolean | Desenha os terços sobre o recorte enquanto ele é movido. Ligado por padrão num retângulo e desligado num círculo, onde a regra dos terços não significa nada: a guia serve para compor um quadro, e um recorte redondo não tem cantos para onde compor. |
| minWidth | number | O menor recorte, nos pixels da própria imagem. |
| minHeight | number | — |
| height | number | string | A altura do palco: um número é em pixels. |
| previewSize | number | O tamanho da prévia ao vivo, em pixels. Zero não desenha nenhuma. |
| disabled | boolean | — |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| update:modelValue | value: CropValue | O recorte, à medida que muda. |
| load | event: { width: number; height: number } | A imagem carregou e seu tamanho natural é conhecido. |
| change | value: CropValue | Um arrasto do recorte ou de uma alça terminou. |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| toolbar | (props: { value: CropValue; reset: () => void }) | Substitui a barra de ferramentas. |
| preview | (props: { value: CropValue }) | Ao lado da prévia, ou no lugar dela. |