Closed HyperEpsilon closed 2 years ago
Thank you for the report. I reproduced the issue:
It happens with WebP files but not with PNG files.
WebPShop's DoReadStart()
is called when opening the .webp normally, and when resizing the Smart Object after opening the .psd. I used these two calls to compare but unfortunately I was not able to find the root cause:
FormatRecord
struct in PIFormat.h from the Adobe Photoshop SDK is used as the main interface between the plugin (WebPShop) and the host (Photoshop). It contains exactly the same bytes except for the following fields: dataFork
, fileSpec
, fileSpec2
, fileSpecX
.FormatRecord::dataFork
in ReadOneImage()
.FormatRecord::fileSpec*
is not used by the plugin.FormatRecord::data
contains the same correct first sample (0xFF, 0xFF, 0xFF, 0x10) in ReadOneImage()
, even after calling format_record->progressProc(1, 1)
.FormatRecord::transparencyPlane
is correctly set to -1 ("the host supports transparency") by the host and to 3 ("the index of the plane containing transparency information") by the plugin.One noteworthy fact: in DoReadStart()
, format_record->layerData
is set to at least 1 (instead of 0 for still images) to force formatSelectorReadLayer*
selectors instead of formatSelectorRead*
. Otherwise there were alpha issues. In this case of Smart Object loading, layerData=1
has no impact, and thus the Layer selectors are not called, leading to these same alpha issues.
I also found out that opening an animated WebP as a Smart Object does not work at all and wrote the fix for that separate issue. It should be included in the next commit.
Any movement on this? I see on the bug report site that apparently the feedback site has been closed.
This post with the same issue on the "new" Adobe Support Community platform is still open, so I guess nothing changed besides the implicit termination of any official Adobe support.
Photoshop 23.2 has partial native WebP support. Uninstalling WebPShop removes this smart-layer resize issue (but encoding preview and animations will not be supported anymore).
I have discovered that if a webp is imported to a psd as a smart layer, then the psd is closed and reopened, that resizing the webp layer causes the transparency to disappear and be replaced by pixelated white blocks.
It is only the transparency that is affected, the rest of the detail remains perfectly clear.
Rasterizing the layer prevents the white from showing up, however it loses all the benefits of being a smart layer in the first place.
Also, this only occurs in files which have been saved and reopened, just saving and continuing work has no effect.
Photoshop version: 22.1.0 Webp Plugin version: 0.3.3 (This also happened on 0.3.2)