ФорумПрограммированиеPHP для идиотов → Работа с imagesetpixel

Работа с imagesetpixel

  • sNICkerssss

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 3 мая 2010 г. 11:38

    Все привет! Вот такой вапрос.
    При наложении одного пикселя на картинку соблюдается некоторая его прозрачность. Как ее убрать? Библиотека GD2. Функция imageAlphaBlending($image, false) не помогает, или я ее не так подключаю.

    Делаю так:

    $image = imageCreateFromJPEG("1.jpg");
    imageAlphaBlending($image, false);

    $white = imagecolorallocate($image, 255, 255, 255);

    imagesetpixel($image, 100, 200, $white);

    imageJPEG($image, "new_1.jpg", 100);
    imageDestroy($image);



    В итоге пиксель не белый на 100% (255, 255, 255) и даже немного закрашиваются (легкий оттенок белого) соседние пиксели (а нужно идеально на 100%), он имеет небольшой оттенок цвета под ним (проверял в фотошопе пипеткой). В чем проблема?
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 4 мая 2010 г. 9:29, спустя 21 час 50 минут 22 секунды

    создал чисто чёрный документ, скопировал запустил скрипт, открыл ткнул пипеткой  в пиксель: #FFFFFF, чяднт?

    заменил:
    imageAlphaBlending($image, false);
    $white = imagecolorallocate($image, 255, 255, 255);

    на $white = imagecolorallocatealpha($image, 255, 255, 255, 0); - тут действительно шляпа, alpha 0 не даёт чистый белый, а #FEFEFE
    Work, buy, consume, die
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 4 мая 2010 г. 9:34, спустя 5 минут 38 секунд

    перо не устанавливали? толщину/стиль пера?
    может толщина пера больше 1 пикселя? Воткните imageSetTickness($image, 1) перед тем как устанавливаете цвет пикселя
    Work, buy, consume, die
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 5 мая 2010 г. 2:55, спустя 17 часов 20 минут 19 секунд

    Naaayh, это не толщина пера, это JPEG
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 5 мая 2010 г. 5:50, спустя 2 часа 55 минут 47 секунд

    не, я установил цвет пикселя в FFFFFF, сохранил в jpeg, фотожоп мне сказал, что пиксель реално белый, если квалити 100%, то нормально сохраняет
    Work, buy, consume, die
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 5 мая 2010 г. 6:18, спустя 27 минут 38 секунд

    В каждом конкретном случае, в частности только два цвета (черный/белый) может быть всё что угодно
  • trump

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 13 мая 2017 г. 5:50, спустя 2564 дня 23 часа 31 минуту

    А мне поможете?
    Нужно нарисовать несколько разноцветных точек на картинке, но правильным цветом рисуется только первая (красная), а остальные просто чёрные. Что я не так делаю?

    <? header("Content-type: image/png");
    $im = imagecreatefrompng("./1.png");
    $red = imagecolorallocate($im, 255, 0, 0);
    imagesetpixel($im, 5,5, $red);
    $green = imagecolorallocate($im, 0, 255, 0);
    imagesetpixel($im, 10,10, $green);
    $blue = imagecolorallocate($im, 0, 0, 255);
    imagesetpixel($im, 15,15, $blue);
    ImagePng($im);
    ImageDestroy($im); ?>

  • trump

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 13 мая 2017 г. 10:03, спустя 4 часа 13 минут 25 секунд

    Хм... Подсунул другую картинку - всё отрисовалось как надо

  • trump

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 13 мая 2017 г. 12:20, спустя 2 часа 17 минут 5 секунд

    всё ясно. картинка была 8 бит, поэтому глюки

Пожалуйста, авторизуйтесь, чтобы написать комментарий!