Не нравятся результаты поиска? Попробуйте другой поиск!

Белый фон у картинки


     16.07.2014    Общие вопросы по вёрстке    1349

вопрос
Здравствуйте. Установила на сайт фотоальбомы, но проблема с добавлением картинок png с прозрачным фоном.
Если фон прозрачный, то при добавлении на сайт он становится чёрным, а когда скачиваешь, тоже чёрный.
Как сделать, чтобы фон и оставался прозрачным?
http://multall.ru/photo-id-5.html

Ответа пока нет


Комментарии пользователей (24)

lutskboy
3

547 | 103

lutskboy - 16 июля 2014 16:51 - Юзер

ето такая особенность работы класса уменьшения картинок thumb.class.php
нужно пошаманить над ним.

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 17:35 - Юзер

Блин. Как?!

rocksmart
64

307 | 115

rocksmart - 16 июля 2014 17:46 - Юзер

Попробуй поменять

//imagealphablending( $this->img['des'], false);  //старое
            
            imagealphablending( $this->img['des'],  true);//новое

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 18:01 - Юзер

Это в каком шаблоне?

rocksmart
64

307 | 115

rocksmart - 16 июля 2014 18:05 - Юзер

engine/classes/thumb.class.php

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 20:13 - Юзер

Не помогло.
Блин....что делать? Очень нужно это исправить!

FastFud
50

1599 | 588

FastFud - 16 июля 2014 20:29 - Юзер

А этот модуль фотоальбомы использует стандартный thumb.class.php или нет ?

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 20:42 - Юзер

Похоже нет, наверное это: http://multall.ru/winxclub/6-avvfo.html
Тех поддержка этого модуля сказала, нужно искать в этом коде.

FastFud
50

1599 | 588

FastFud - 16 июля 2014 20:46 - Юзер

Ну раз он то наверное, после
}elseif( $this->type == 'png' ) {(217) строка
поставить
imagealphablending($this->img, TRUE);

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 20:56 - Юзер

Ничего не вышло, вот так я сделала:
if( $this->type == 'jpg' || $this->type == 'jpeg' ){
            imagejpeg( $this->img, $save, $this->quality );
        }elseif( $this->type == 'png' ) {
        imagealphablending($this->img, TRUE);
            imagepng($this->img, $save );
        }elseif( $this->type == 'gif' ){
            imagegif( $this->img, $save );

И как был так и остался черный фон.

FastFud
50

1599 | 588

FastFud - 16 июля 2014 21:02 - Юзер

imagealphablending($this->img, true);
imagesavealpha($this->img, true);
получится так:
function save( $save = '' ){
 if( $this->type == 'jpg' || $this->type == 'jpeg' ){
            imagejpeg( $this->img, $save, $this->quality );
        }elseif( $this->type == 'png' ) {
            imagealphablending($this->img, true);
            imagesavealpha($this->img, true);
            imagepng($this->img, $save );
        }elseif( $this->type == 'gif' ){
            imagegif( $this->img, $save );
        }

        imagedestroy( $this->img );
        if(is_resource($this->des)) {
            imagedestroy( $this->des );
        }
    }

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 21:05 - Юзер

Не получается. :(

FastFud
50

1599 | 588

FastFud - 16 июля 2014 21:08 - Юзер

imagealphablending($this->img, false);
imagesavealpha($this->img, true);
и еще вы после этого добавляете новые картинки или смотрите на те-же ?))

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 21:09 - Юзер

Добавляю новые. Сейчас добавила гиф с прозрачным фоном, и у неё он прозрачный, а не черный.

FastFud
50

1599 | 588

FastFud - 16 июля 2014 21:17 - Юзер

sa22-91, Зачем gif если вам png надо ?

FastFud
50

1599 | 588

FastFud - 16 июля 2014 21:26 - Юзер

Или так еще попробуйте:
function save( $save = '' ){
    if( $this->type == 'jpg' || $this->type == 'jpeg' ){
        imagejpeg( $this->img, $save, $this->quality );
    }elseif( $this->type == 'png' ) {
        imagealphablending($this->img, false);
        $color = imagecolorallocatealpha($this->img, 0, 0, 0, 127);
        imagefill($this->img, 0, 0, $color);
        imagesavealpha($this->img, true);
        imagepng($this->img, $save );
    }elseif( $this->type == 'gif' ){
        imagegif( $this->img, $save );
    }
        imagedestroy( $this->img );
    if(is_resource($this->des)) {
        imagedestroy( $this->des );
    }
}

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 23:18 - Юзер

Гиф, просто для проверки, ведь она тоже имеет прозрачный фон.

sa22-91
2

135 | 6

sa22-91 - 16 июля 2014 23:40 - Юзер

Нет, превью картинки половина белая, остальная черная получается. При сохранении полностью черный фон.
Мне удалось сделать белый фон, так:
}elseif( $this->type == 'png'  || $this->type == 'png' ){
            imagepng($this->img, $save );

То есть добавила кусочек кода от jpeg: || $this->type == 'png' ){
Но как сделать, чтобы при сохранении был не белый фон, а прозрачный?

FastFud
50

1599 | 588

FastFud - 17 июля 2014 00:18 - Юзер

Пример что я дал выше для png формата.
function save( $save = '' ){
    if( $this->type == 'jpg' || $this->type == 'jpeg' ){
        imagejpeg( $this->img, $save, $this->quality );
    }elseif( $this->type == 'png' ) {
        $color = imagecolorallocatealpha($this->img, 0, 0, 0, 127);
        imagefill($this->img, 0, 0, $color);
        imagealphablending($this->img, false);
        imagesavealpha($this->img, true);
        imagepng($this->img);
    }elseif( $this->type == 'gif' ){
        imagegif( $this->img, $save );
    }
        imagedestroy( $this->img );
    if(is_resource($this->des)) {
        imagedestroy( $this->des );
    }
}
или так
function save( $save = '' ){
    if( $this->type == 'jpg' || $this->type == 'jpeg' ){
        imagejpeg( $this->img, $save, $this->quality );
    }elseif( $this->type == 'png' || $this->type == 'png' ) {
        $color = imagecolorallocatealpha($this->img, 0, 0, 0, 127);
        imagefill($this->img, 0, 0, $color);
        imagealphablending($this->img, false);
        imagesavealpha($this->img, true);
        imagepng($this->img);
    }elseif( $this->type == 'gif' ){
        imagegif( $this->img, $save );
    }
        imagedestroy( $this->img );
    if(is_resource($this->des)) {
        imagedestroy( $this->des );
    }
}

sa22-91
2

135 | 6

sa22-91 - 17 июля 2014 15:28 - Юзер

Блин. Всё равно этот черный фон остаётся!
Может мы не в том месте смотрим?

sa22-91
2

135 | 6

sa22-91 - 18 июля 2014 00:15 - Юзер

Что, ни у кого такого не было?

FastFud
50

1599 | 588

FastFud - 18 июля 2014 01:26 - Юзер

Нужно тестить!

sa22-91
2

135 | 6

sa22-91 - 18 июля 2014 03:03 - Юзер

Блин, я уже передумала на dle сайт делать. Зря только фотоальбом купила. И продать не кому... .

FastFud
50

1599 | 588

FastFud - 18 июля 2014 03:12 - Юзер

Ну раз купили обратитесь в тех поддержку модуля, помочь должны, а если нет: skype: maximus5999 попробую помочь

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы