Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions libimageviewer/unionimage/imageutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -782,9 +782,15 @@ bool imageSupportWallPaper(const QString &path)
@return 返回文件类型是否可以直接设置锁屏壁纸
壁纸支持 jpeg jpg png bmp tif gif
锁屏支持 jpeg jpg png
且允许直接设置的图片大小不超过5MB (后端限制<32MB)
*/
bool imageSupportGreeterDirect(const QString &path)
{
static qint64 s_maxFileSize = 5 * 1024 * 1024;
if (QFileInfo(path).size() > s_maxFileSize) {
return false;
}

QMimeDatabase db;
QMimeType mt = db.mimeTypeForFile(path, QMimeDatabase::MatchDefault);
return "image/jpeg" == mt.name() || "image/png" == mt.name();
Expand Down
5 changes: 3 additions & 2 deletions libimageviewer/viewpanel/viewpanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -883,13 +883,14 @@ static void setWallpaperWithDBus(const QString &path)
void LibViewPanel::setWallpaper(const QImage &img)
{
if (!img.isNull()) {
QString tempPathTemplate = Libutils::image::getCacheImagePath() + QDir::separator() + "XXXXXX_Wallpaper.png";
QString tempPathTemplate = Libutils::image::getCacheImagePath() + QDir::separator() + "XXXXXX_Wallpaper.jpg";
QThread *th1 = QThread::create([ = ]() {
// 设置锁屏壁纸不能使用相同名称,且临时文件不能立即删除(调用DBus接口拷贝需要时间),保留至缓存目录,程序退出自动清理
QTemporaryFile tmpImage;
tmpImage.setAutoRemove(false);
tmpImage.setFileTemplate(tempPathTemplate);
if (!tmpImage.open() || !img.save(tmpImage.fileName(), "PNG")) {
// 使用JPG压缩而不是PNG以压缩减少缓存图片大小
if (!tmpImage.open() || !img.save(tmpImage.fileName(), "JPG")) {
qWarning() << QString("Copy image set wallpaper failed! path: %1").arg(tmpImage.fileName());
return;
}
Expand Down