Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Замена цветов в изображении (https://forum.zone-game.info/showthread.php?t=23619)

zag 14.10.2012 11:13

Замена цветов в изображении
 
есть задача, изменить все !белые цвета на черный, нагуглил код меняющий черный на красный, но он почему-то отказывается работать ...

Код:

$im = imagecreatefrompng('0.png');
$im_x = 179;
$im_y = 58;

$color = imageColorAllocate($im, 255, 0, 0);
for ($x = 0; $x <= $im_x; $x++){
for ($y = 0; $y <= $im_y; $y++){
$rgb = imagecolorat($im, $x, $y);
$colors = imagecolorsforindex($im, $rgb);

if ( $colors['red'] == 0 && $colors['blue'] == 0 && $colors['green'] == 0 ){

imageSetPixel($im, $x, $y, $color);
}
}
}

Header("Content-type: image/png");
imagepng($im);

браузер говорит Изображение «0.png» не может быть показано, так как содержит ошибки.
мб кто-то может подсказать, где тут ошибка ?

Aquanox 14.10.2012 11:59

Re: Замена цветов в изображении
 
Смени mime на text/plain и посмотри текст ошибки

Dementor 14.10.2012 12:02

Re: Замена цветов в изображении
 
PHP код:

$width 120// ширина
$height 60// высота

$color 0xFFFFFF// какой цвет будет заменять (белый)
$color_replace 0x000000// на какой цвет будем заменять (черный)

for ($a=0$a<$width$a++) {
    for (
$b=0$b<$height$b++) {
        if (
imagecolorat($img2$a$b) == $color) { imagesetpixel($img2$a$b$color_replace); }
    }



zag 14.10.2012 12:28

Re: Замена цветов в изображении
 
Цитата:

Сообщение от Неверный (Сообщение 235252)
PHP код:

$width 120// ширина
$height 60// высота

$color 0xFFFFFF// какой цвет будет заменять (белый)
$color_replace 0x000000// на какой цвет будем заменять (черный)

for ($a=0$a<$width$a++) {
    for (
$b=0$b<$height$b++) {
        if (
imagecolorat($img2$a$b) == $color) { imagesetpixel($img2$a$b$color_replace); }
    }



спасибо, но браузер твердит тоже самое - Изображение «0.png» не может быть показано, так как содержит ошибки.

Dementor 14.10.2012 12:29

Re: Замена цветов в изображении
 
Цитата:

Сообщение от zag (Сообщение 235256)
спасибо, но браузер твердит тоже самое - Изображение «0.png» не может быть показано, так как содержит ошибки.

дайте скрин с браузера и выложите полный скрипт. Это уже ошибка где-то в вашей части кода.

zag 14.10.2012 12:41

Re: Замена цветов в изображении
 
0.png http://rghost.ru/40927501/image.png
код
Код:

<?php

$img2 = imagecreatefrompng('0.png');

$width = 179; // ширина
$height = 58; // высота

$color = 0xFFFFFF; // какой цвет будет заменять (белый)
$color_replace = 0x000000; // на какой цвет будем заменять (черный)

for ($a=0; $a<$width; $a++) {
    for ($b=0; $b<$height; $b++) {
        if (imagecolorat($img2, $a, $b) == $color) { imagesetpixel($img2, $a, $b, $color_replace); }
    }
}
Header("Content-type: image/png");
imagepng($img2);
?>

скрин с браузера
http://rghost.ru/40927523/image.png

Dementor 14.10.2012 13:26

Re: Замена цветов в изображении
 
А заголовки Header("Content-type: image/png"); разве не в начале должны быть?

Добавлено через 1 минуту
И вот это вроде забыли добавить: imagedestroy($img2); после создания картинки

PHP код:

imagepng($img2);
imagedestroy($img2); // добавлено 


zag 14.10.2012 13:30

Re: Замена цветов в изображении
 
Цитата:

Сообщение от Неверный (Сообщение 235266)
А заголовки Header("Content-type: image/png"); разве не в начале должны быть?

Добавлено через 1 минуту
И вот это вроде забыли добавить: imagedestroy($img2); после создания картинки

PHP код:

imagepng($img2);
imagedestroy($img2); // добавлено 


исправил, дописал, ничего не изменилось

Arzamas 14.10.2012 13:46

Re: Замена цветов в изображении
 
Проверил у себя, код нормально работает!

добавь в начало скрипта, чтобы посмотреть все возникающие ошибки...
PHP код:

error_reporting (E_ALL); 


zag 14.10.2012 13:50

Re: Замена цветов в изображении
 
Цитата:

Сообщение от Arzamas (Сообщение 235270)
Проверил у себя, код нормально работает!

добавь в начало скрипта, чтобы посмотреть все возникающие ошибки...
PHP код:

error_reporting (E_ALL); 


добавил, ошибок не показывает
какой у вас браузер\версия php?


Текущее время: 11:20. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot