Usando o System.drawing para fazer uma ferramenta de seleção e cortar uma imagem em vb.net

StackOverflow https://stackoverflow.com/questions/1381526

  •  21-09-2019
  •  | 
  •  

Pergunta

Se eu quisesse cortar uma imagem no vb.net, como eu iria fazer isso? Estou tentando deixar o usuário arrastar a caixa que deseja (system.drawing.rectangle) e removerá automaticamente as bordas ao redor da caixa.

Meu primeiro problema é principalmente o fato de não poder tornar visível o sistema. Não está exibindo, estou definindo sua localização e altura programaticamente, mas nada está aparecendo. Eu sei que provavelmente há algo bastante óbvio que estou perdendo ... mas não consigo encontrá -lo.

Meu problema maior, no entanto, está no próprio corte. Não consigo encontrar nenhum método de cultivo. Existe um oculto que estou perdendo? Ou devo codificá -lo sozinho? Como eu iria fazer isso? Ele deve ser capaz de produzir para um objeto de imagem de bitmap.

Obrigado pela ajuda, fico surpreso que isso não tenha sido perguntado aqui antes ....

Foi útil?

Solução

Em relação ao seu primeiro problema: um retângulo não é visível. Você precisa desenhá -lo em sua tela usando o método DrawRectangle (...) do objeto gráfico. Para desenhar uma ferramenta de seleção, você deseja definir as propriedades do painel e o DashPattern do seu objeto de caneta.

Para "cortar" uma imagem, você basicamente deseja pegar a parte de uma imagem maior delineada por um retângulo menor e transformá -la em um novo bitmap. Isso pode ser feito usando uma das 30 sobrecargas do método DrawImage (...) do objeto gráfico. Você pode manter a parte cortada em suas dimensões originais (resultando em um bitmap menor que o original), ou pode "explodir" para algo como o tamanho da imagem original. Se você fizer a última abordagem, geralmente é uma boa idéia definir a propriedade InterpolationMode do seu objeto gráfico como High QualityBicubic (acho que é essa, de qualquer maneira), já que o interpolationMode padrão é bastante ruim.

Existem várias maneiras diferentes de renderizar imagens no .NET - pode ajudar se você postar parte do seu código, juntamente com uma explicação dos problemas exatos que você está enfrentando.

Aqui está outra resposta Com um link para um aplicativo de amostra (e código -fonte em C#, desculpe), isso pode ajudá -lo a começar.

Outras dicas

Existem vários artigos sobre esses tópicos no CodeProject:

Escolha seu sabor favorito (embora eu o incentive a conferir os projetos C# - não deve ser muito difícil de converter).

Vb
Captura de imagens com redimensionamento de imagem usando vb.net

C#
Cortando imagens Um controle de imagem e corte de imagem fácil de usar
Processamento de imagem usando C# (Veja a seção de cultivo - pude usar esse código em um dos meus projetos)

Wpf/c#
Controle de corte de imagem interativa WPF
Um adorno de corte do tipo Photoshop para WPF

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top