diff --git a/Telegram/SourceFiles/data/data_document_media.cpp b/Telegram/SourceFiles/data/data_document_media.cpp index 1b24abe00..058b6b02f 100644 --- a/Telegram/SourceFiles/data/data_document_media.cpp +++ b/Telegram/SourceFiles/data/data_document_media.cpp @@ -58,7 +58,11 @@ enum class FileType { QByteArray data, FileType type) { if (type == FileType::Video || type == FileType::VideoSticker) { - return ::Media::Clip::PrepareForSending(path, data).thumbnail; + auto result = ::Media::Clip::PrepareForSending(path, data); + if (result.isWebmSticker && type == FileType::Video) { + result.thumbnail = Images::Opaque(std::move(result.thumbnail)); + } + return result.thumbnail; } else if (type == FileType::AnimatedSticker) { return Lottie::ReadThumbnail(Lottie::ReadContent(data, path)); } else if (type == FileType::Theme) { diff --git a/Telegram/SourceFiles/media/clip/media_clip_reader.cpp b/Telegram/SourceFiles/media/clip/media_clip_reader.cpp index 2c2552c2a..f27f01397 100644 --- a/Telegram/SourceFiles/media/clip/media_clip_reader.cpp +++ b/Telegram/SourceFiles/media/clip/media_clip_reader.cpp @@ -859,12 +859,7 @@ Ui::PreparedFileInformation::Video PrepareForSending(const QString &fname, const auto readFrame = (readResult == internal::ReaderImplementation::ReadResult::Success); if (readFrame && reader->renderFrame(result.thumbnail, hasAlpha, QSize())) { if (hasAlpha && !result.isWebmSticker) { - auto cacheForResize = QImage(); - auto request = FrameRequest(); - request.framew = request.outerw = result.thumbnail.width(); - request.frameh = request.outerh = result.thumbnail.height(); - request.factor = 1; - result.thumbnail = PrepareFrameImage(request, result.thumbnail, hasAlpha, cacheForResize); + result.thumbnail = Images::Opaque(std::move(result.thumbnail)); } result.duration = static_cast(durationMs / 1000); } diff --git a/Telegram/SourceFiles/media/streaming/media_streaming_document.cpp b/Telegram/SourceFiles/media/streaming/media_streaming_document.cpp index d45c84c28..d936acc04 100644 --- a/Telegram/SourceFiles/media/streaming/media_streaming_document.cpp +++ b/Telegram/SourceFiles/media/streaming/media_streaming_document.cpp @@ -239,6 +239,9 @@ void Document::validateGoodThumbnail() { Qt::IgnoreAspectRatio, Qt::SmoothTransformation); } + if (!sticker && information.alpha) { + result = Images::Opaque(std::move(result)); + } return result; }(); auto bytes = QByteArray();