I managed to find a potential solution to this. I just remembered how powerful Powershell is and discovered that it can use built-in Windows assemblies to resize images. So using RunCommand I made a measure that resizes photos in a temp directory on the fly and Rainmeter just loads those instead:
The code could likely be improved, like sometimes it shrinks down photos with long/wide aspect ratios too much and they look blurry, or if the path contains an apostrophe it will just fail to load the image. Main issue I've noticed is now the CPU spikes during the resize/conversion process instead of the GPU, but I think this might be more forgivable. I still have to test it more on a day-to-day use. The user would obviously need to have PowerShell installed for this to work, but it comes preinstalled on most Windows devices anyway.
Code:
[MeasureResizeImageCommand]Measure=PluginPlugin=RunCommandProgram=powershell.exeParameter=If (Get-Item image1.png -ErrorAction Ignore) {Remove-Item image1.png};$wia = New-Object -com wia.imagefile;$wia.LoadFile('[&MeasurePhoto]') | Out-Null;$wip = New-Object -ComObject wia.imageprocess;$scale = $wip.FilterInfos.Item('Scale').FilterId;$wip.Filters.Add($scale) | Out-Null;$wip.Filters[1].Properties('MaximumWidth') = '[#PhotoW]';$wip.Filters[1].Properties('MaximumHeight') = '[#PhotoH]';$wip.Filters[1].Properties('PreserveAspectRatio') = $true;$wip.Apply($wia)|Out-Null;$newimg = $wip.Apply($wia);$newimg.SaveFile('image1.png');(Get-item image1.png).FullNameStartInFolder=#TempPath#OutputType=ANSIRegExpSubstitute=1Substitute="\n":""FinishAction=[!SetOption MeterPhoto ImageName "[#CURRENTSECTION#]"][!UpdateMeter MeterPhoto][!Redraw][!CommandMeasure Measure#Transition#Transition "Execute 1"]DynamicVariables=1
Statistics: Posted by DanTheGuy720 — Yesterday, 11:45 pm