Então, eu tenho um arquivo SVG em HTML, e uma das coisas que ouvi sobre o formato é que ele não fica todo pixelizado quando você o aproxima.
Eu sei com um jpeg ou o que quer que eu possa armazená-lo como um ícone de 50 por 50 e, em seguida, exibi-lo como uma miniatura (bastante pixelizada) de 100 por 100 (ou 10 por 10), definindo manualmente a altura e a largura no image_src tag.
No entanto, os arquivos SVG parecem ser usados com as tags de objeto / incorporação e a alteração da altura ou largura de THOSE apenas resulta em mais espaço alocado para a imagem.
Existe alguma maneira de especificar que você deseja que uma imagem SVG seja exibida menor ou maior do que realmente é armazenada no sistema de arquivos?
Tente esse:
Defina a caixa de visualização ausente e preencha os valores de altura e largura dos atributos de altura e altura definidos na tag svg
Em seguida, redimensione a imagem simplesmente definindo a altura e a largura para os valores percentuais desejados . Boa sorte.
Defina uma proporção fixa com
preserveAspectRatio="X200Y200 meet
(por exemplo, 200px), mas não é necessáriopor exemplo
fonte
você pode redimensioná-lo exibindo svg na tag de imagem e no tamanho da tag de imagem, ou seja
fonte
Alterar a largura do contêiner também o corrige, em vez de alterar a largura e a altura do arquivo de origem.
Isso corrige meu problema de redimensionar o svg. você pode dar qualquer% com base em sua exigência.
fonte
Eu achei melhor adicionar
viewBox
epreserveAspectRatio
atribuir aos meus SVGs. A caixa de visualização deve descrever a largura e a altura completas do SVG no formato0 0 w h
:fonte
Use o seguinte código:
fonte
Aqui está um exemplo de como obter os limites usando
svg.getBox()
: https://gist.github.com/john-doherty/2ad94360771902b16f459f590b833d44No final, você obtém números que você pode conectar ao svg para definir a caixa de exibição corretamente. Em seguida, use qualquer css na div pai e pronto.
fonte
Os gráficos SVG, como outros trabalhos criativos, são protegidos pela lei de direitos autorais na maioria dos países. Dependendo da jurisdição, licença do trabalho ou se você é ou não o detentor dos direitos autorais, talvez não seja possível modificar o SVG sem violar a lei de direitos autorais , acredite ou não.
Mas leis são tópicos complicados e, às vezes, você só quer fazer merda. Portanto, você pode ajustar a escala do gráfico sem modificar o trabalho em si usando a
img
tag comwidth
atributo em seu HTML.Usando uma solicitação HTTP externa para especificar o tamanho:
Especificando o tamanho na marcação usando um URI de Dados :
Os SVGs podem ser otimizados para URIs de dados para criar imagens SVG Favicon adequadas para qualquer tamanho:
fonte