Quiero recortar una imagen rectangular a una forma no rectangular. Me doy cuenta de que si tomas eso literalmente, no es posible. Con lo que quiero terminar es con la imagen X, recortada para dar forma a Y, sobre un fondo transparente.¿Cómo recortaría programáticamente una imagen a una forma no rectangular?
Digamos, por ejemplo, que quiero tomar una foto de la bandera de Idaho y recortarla en la forma del estado de Idaho. Me imagino que me gustaría hacer algo como esto:
- Crear una imagen que tiene píxeles opacos para la forma de Idaho, los píxeles transparentes en todos los demás
- leer y almacenar algún tipo de mapa de bits para la imagen del estado de Idaho
- para cada posición de píxel opacos en la imagen del estado de Idaho en, copie el píxel correspondiente de la imagen de la bandera del estado de Idaho y colocarlo en un lienzo en blanco, transparente
Paso 1, obviamente, se llevaría a cabo de forma manual, pero el resto se haría programaticamente Creo que tengo la idea correcta en general, pero no sé cómo abordaría los detalles. ¿Alguien puede señalarme en la dirección correcta?
En lo que respecta a la tecnología de implementación, soy un tipo de PHP, por lo que usar gdLibrary o algo que funcione con PHP probablemente sea la mejor forma de hacerlo.
Debería agregar la etiqueta php a la pregunta – wich