Merge pull request #2769 from defnax/thumbnailfixchannelpost

Fix transparency for channel post thumbnails
This commit is contained in:
csoler 2023-09-19 15:19:21 +02:00 committed by GitHub
commit 4cb36a5b69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -35,6 +35,7 @@
#include "util/rsdir.h"
#include "util/qtthreadsutils.h"
#include "util/RichTextEdit.h"
#include "util/imageutil.h"
#include <retroshare/rsfiles.h>
@ -607,11 +608,13 @@ bool CreateGxsChannelMsg::setThumbNail(const std::string& path, int frame){
if(imageBuffer == NULL)
return false;
QImage tNail(imageBuffer, width, height, QImage::Format_RGB32);
QImage tNail(imageBuffer, width, height, QImage::Format_RGBA32);
QByteArray ba;
QBuffer buffer(&ba);
bool has_transparency = ImageUtil::hasAlphaContent(tNail.toImage());
buffer.open(QIODevice::WriteOnly);
tNail.save(&buffer, "JPG");
tNail.save(&buffer, has_transparency?"PNG":"JPG");
QPixmap img;
img.loadFromData(ba, "PNG");
img = img.scaled(thumbnail_label->width(), thumbnail_label->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
@ -797,15 +800,19 @@ void CreateGxsChannelMsg::sendMessage(const std::string &subject, const std::str
QByteArray ba;
QBuffer buffer(&ba);
RsGxsImage image;
RsGxsImage image;
QPixmap pixmap;
pixmap = preview_W->getCroppedScaledPicture();
QImage qimg = pixmap.toImage();
bool has_transparency = ImageUtil::hasAlphaContent(qimg);
if(!picture.isNull())
{
// send chan image
buffer.open(QIODevice::WriteOnly);
preview_W->getCroppedScaledPicture().save(&buffer, "JPG"); // writes image into ba in PNG format
image.copy((uint8_t *) ba.data(), ba.size());
preview_W->getCroppedScaledPicture().save(&buffer, has_transparency?"PNG":"JPG"); // writes image into ba in PNG format
image.copy((uint8_t *) ba.data(), ba.size());
}
std::string error_string;