strip_tags remove quitar para funcion etiquetas ejemplo php replace colors gd

php - remove - strip_tags wordpress



PHP-Reemplaza el color dentro de la imagen (2)

Aquí está la solución de reemplazo de color que primero se convierte en 256 paletas:

//Open Image $Image = imagecreatefromJPEG(''input.jpg'') or die(''Problem with source''); //set the image to 256 colours imagetruecolortopalette($Image,0,256); //Find the Chroma colour $RemChroma = imagecolorexact( $Image, 0,0,255 ); //Replace Chroma Colour imagecolorset($Image,$RemChroma,0,0,254); //Use function to convert back to true colour imagepalettetotruecolor($Image); function imagepalettetotruecolor(&$img) { if (!imageistruecolor($img)) { $w = imagesx($img); $h = imagesy($img); $img1 = imagecreatetruecolor($w,$h); imagecopy($img1,$img,0,0,0,0,$w,$h); $img = $img1; } }

Yo personalmente prefiero la solución de radio4fans ya que es sin pérdida, pero si la velocidad es su objetivo, esto es superior.

Espero que alguien pueda ayudar,

He hecho una secuencia de comandos que enmascara imágenes ... sin embargo, depende de un color para enmascarar con (estilo ''pantalla verde''). El problema es si la imagen que estoy enmascarando contiene ese color, está arruinada.

Lo que estoy buscando hacer es antes de enmascarar la imagen reemplazar cualquier ocurrencia de mi color de clave (0,0,255) con un color similar como 0,0,254.

He encontrado algunas soluciones basadas en gif o PNG de 256 colores, ya que están indexados.

Así que mi pregunta es también ¿será más eficiente convertirlo a un gif o 256 png luego mirar a través del índice y reemplazar el color o buscar a través de cada píxel y reemplazar los colores.

Gracias,


Debe abrir el archivo de entrada y escanear cada píxel para verificar su valor de cromo.

Algo como esto:

// Open input and output image $src = imagecreatefromJPEG(''input.jpg'') or die(''Problem with source''); $out = ImageCreateTrueColor(imagesx($src),imagesy($src)) or die(''Problem In Creating image''); // scan image pixels for ($x = 0; $x < imagesx($src); $x++) { for ($y = 0; $y < imagesy($src); $y++) { $src_pix = imagecolorat($src,$x,$y); $src_pix_array = rgb_to_array($src_pix); // check for chromakey color if ($src_pix_array[0] == 0 && $src_pix_array[1] == 0 && $src_pix_array[2] == 255) { $src_pix_array[2] = 254; } imagesetpixel($out, $x, $y, imagecolorallocate($out, $src_pix_array[0], $src_pix_array[1], $src_pix_array[2])); } } // write $out to disc imagejpeg($out, ''output.jpg'',100) or die(''Problem saving output image''); imagedestroy($out); // split rgb to components function rgb_to_array($rgb) { $a[0] = ($rgb >> 16) & 0xFF; $a[1] = ($rgb >> 8) & 0xFF; $a[2] = $rgb & 0xFF; return $a; }