Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, eu tenho no banco de dados pontos que sao coordenadas.
Por exemplo:
Ponto 1: X: 430, Y: 123
Ponto 2: X: 1021, Y: 921
etc...
No fim das contas, o ultimo ponto de referencia se encontra com o ponto 1..
Ex:
Ponto 8: X: 430, Y: 123
Ou seja, a imagem é uma imagem "sólida"
E eu preciso a partir destes pontos dar um "crop" na imagem que será a parte "util" da imagem..
Na pratica, funciona assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img687.imageshack.us/img687/5746/img0849lx.jpg&key=f9c5b8d249472f9aea669da3c5b512632b52037a9bfac0e2dfcce052d5ed8f23" alt="Imagem Postada" />
Observem na imagem que coloquei os pontos da coordenadas na imagem, agora eu teria que fechar estes pontos e dar o crop na parte que o banco de dados me passou
Para entender melhor a ligação dos pontos da parte necessária, ela irá ficar assim
/applications/core/interface/imageproxy/imageproxy.php?img=http://img526.imageshack.us/img526/3742/img0849l.jpg&key=ce4cbad789ecb649f369fc026f0b3515b719a7e448572172679088e7cf59b4c7" alt="Imagem Postada" />
O resto da imagem é totalmente desprezado, só quero a parte interna das coordenadas
Abaixo o resultado das coordenadas que eu quero:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img707.imageshack.us/img707/554/img0849x.jpg&key=c581fcd8706e09b3c0c82cd20f3488be4b558c41ebaa19296a18475f9857ae2e" alt="Imagem Postada" />
Entenderam? a partir das coordenadas eu extrai o interno dela
Eu sei fazer o crop de X,Y mas X,Y ele retorna um crop diferente, este é um crop de pontos :(
Alguem pode me dar uma luz de qual funçao usar ou entao como fazer para pegar o crop a partir de coordenadas desta forma?
>
Olha, nesse formato, em trapézio nunca vi e acredito que a GD nem possa fazê-lo.
Mas porque você não altera seus pontos para que eles reflitam em quadrados ou retângulos e faz sucessivos recortes?
Não me lembro muito dessa aula, mas me parece ser possível, bastando você readequar o esquema dos pontos cartesianos em cruz, para o formato "em L invertido" usado na manipulação com PHP.
Olha que interessante esse JavaScript, pode te ajudar a recalcular os pontos.
Sim, neste caso que você me passou o crop é feito com x,y mesmo altura e largura que nem a função do php faz nativamente.
Na verdade, eu só tenho a referencia de onde estão localizado os pontos no banco de dados :(
Eu teria que passar para o PHP estes pontos, fazer com que eles se unissem e o crop rolasse apenas na parte interna da ligação dos pontos.
Todos os pontos se ligam, nenhum não se liga...
Pode ter varios formatos, quadrado, triangulo, trapezio...etc...ou entao nem ter um formato específico...pode ser que tenha 4 pontos, 6...20...etc... depende da informação que vem do banco de dados
O maior desafio agora é descobrir como faço para pegar estes pontos de coordenada , liga-los e fazer o php dar crop apenas em seu interior :(
Tentei algumas coisas com o imagecopy mas ele tambem trabalha com x,y,w,h... :(...
Tem que ter uma forma...ou será que é impossivel? ;(
Das duas uma:
O mais possível seria você transformar essas coordenadas irregulares em um quadrado/retângulo.
Em você sabendo, por exemplo, quais são todos os pontos correspondentes à borda superior da imagem, você lista todos os eixos, separa o maior deles, como segurança para não pegar em cima da imagem e ajusta, adicionando ou removendo pixels, os eixos dos outros pontos, até que fiquem todos iguais.
Daí corta todo o resto da imagem até esses pontos. E repete para as laterais e para a base.
É uma tarefa monstruosa, mas você vai ter um resultado pelo menos próximo do desejado, que seria enquadrar um objeto específico num cenário.
OU, você desenvolve seus próprio algoritimos para fazer o efeito "escadinha" que uma linha reta tem e executar sucessivos e quase inifinitos crops ao redor de cada degrauzinho.
Só que isso é bem mais insano.
Olha, nesse formato, em trapézio nunca vi e acredito que a GD nem possa fazê-lo.
Mas porque você não altera seus pontos para que eles reflitam em quadrados ou retângulos e faz sucessivos recortes?
Não me lembro muito dessa aula, mas me parece ser possível, bastando você readequar o esquema dos pontos cartesianos em cruz, para o formato "em L invertido" usado na manipulação com PHP.
Olha que interessante esse JavaScript, pode te ajudar a recalcular os pontos.