Critical Aspose.psd java bugs for effects and text layers

@Coolnology I combined several tasks into one.

PSDJAVA-465: Loading some PSD file with Outglow effect file fails with exception: Color section must contain 3 color components for RGB or 4 color components for CMYK
PSDJAVA-466: PSD file has Layer out glow effect with purple color, but light yellow is rendered
PSDJAVA-467: Incorrect Text Layer Placement After rendering (Here issues 3, 4, 5)
PSDJAVA-468: Drop shadow effect is not showing correctly

About issue 6, I’m not sure, we need additional investigation. It looks like you described the common Photoshop behavior, at glance, we consider this can not be changed. And to make Photoshop reload file, you need to use some external utility that watches the file change and closes Photoshop and opens it again.

Thanks @Dmitriy.Sorokin, for issue 6, what I try to do is have a simple application has one button doing the load and save function, and what I am going to do is press the button twice, but between the presses, I am going to modify the psd file in a image editor(doesn’t matter it’s photoshop or gimp, just do a slightly change). The final image generated for two presses should be different. But I am getting the same result. That’s why I don’t get it, the source PSD has been changed, why still the same?

@Coolnology could you please provide the code snippet to reproduce this. Aspose.PSD doesn’t make any caching, but there are some layers that should be updated by special commands, like “Update”.

Thanks @Dmitriy.Sorokin, For issue 6, I think I have the fix/workaround for the issue now, I just need to call psdImage.dispose(); after the save. But this is still a problem with the SDK because it should init different instance of PSD image that every time that I called load().

May be you will need to fix it.
there is test project: TestApp.zip - Google Drive
There is the sample file: 1.psd - Google Drive

Step to reproduce:

  1. Go into the code, change “Path to 1.psd” and “Path to test.png” to what whatever your 1.psd are and where you want to output the result.
  2. Build and run the App.
  3. Press the button, it will now output “Test.png” with green colour circle.
  4. Do not exit the Test App. Open “1.psd” in photoshop, change the circle colour to red and save the file.
  5. Go back to Test app, press the button again.
  6. Check “Test.png”, the color still green.

Expected result: I should get a new instance of PSDimage object when I click that button and called load
Actual result: Seems like I am getting the same instance. so it never reload .psd file from the disk.
Workaround: call psdimage.dispose() after save will fix it.

@Dmitriy.Sorokin, any time frame for all these issues to be fixed? I think all of them are very fundamental but critical functions, should be fixed ASAP, otherwise it’s limiting the basic use of the SDK.

@Coolnology I created investigation task for this case. PSDJAVA-469. It’s also was atached to this topic.

@Coolnology we are currently working on some of these bugs. This week we will release Aspose.PSD for Java 23.6. It’s possible that some of the issues will be fixed in 23.8. We plan to make it in 1-2 months.

@Dmitriy.Sorokin , Thanks, hope you can fix them ASAP, we need them urgently.

1 Like

Hi @Dmitriy.Sorokin, Any update on this one?

@Coolnology we are publishing release 23.6, Described tasks are planned for 23.8

Thanks @Dmitriy.Sorokin, I have checked 23.6, none of them got fixed. These basic functionality bugs should have much higher priority. We really need a fix or at least a workaround very soon.

@Dmitriy.Sorokin, Also, 23.6 introduces a new exception when saving a psd image: ex = (com.aspose.psd.coreexceptions.ImageSaveException) class com.aspose.psd.coreexceptions.ImageSaveException: Image export failed. —> java.lang.NullPointerException: Cannot invoke “com.aspose.psd.Point.setX(int)” because “[][0]” is null

@Coolnology could you please provide input file and code snippet to reproduce it. I’ll make new issue on the tracker. At this moment Aspose.PSD Java Team works on the bug with effects.

Here is the project file to reproduce the new bug. TestApp 3.zip - Google Drive
PSD file in the resource folder.

@Dmitriy.Sorokin for the above project. Same code works in 23.4.

@Dmitriy.Sorokin To be honest, I love your product, but you really need to be more serious on quality control and be more productive in bug handling. Otherwise people just can’t use it in the more serious projects.

@Coolnology
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): PSDJAVA-495

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@Dmitriy.Sorokin, I am not sure about the paid support at the moment, I am not asking for any new features, but very basic functionality, they should be a bare minimal expectation for an SDK. For things like correct Text location and shadow, and save image function should work without a bug. Am I asking for something that should be premium-supported? I don’t think so. They should be working out of the box. Right?

@Dmitriy.Sorokin More info For PSDJAVA-495, as long as setAllowWarpRepaint is set to true, it will throw the exception, you don’t need to do any additional operation.

PsdLoadOptions loadOption = new PsdLoadOptions();
loadOption.setLoadEffectsResource(true);
PsdImage image = (PsdImage)com.aspose.psd.Image.load(getClass().getResourceAsStream("/Bugs_new.psd"), loadOption);
image.save(“PathToOutput.png”);

@Coolnology thank you. I added this information to our issue. According to current status this issue is fixed and should be released in the nearest Aspose.PSD for Java.