dejwk / roo_display

Arduino-compliant library, targeted at ESP32 and related boards, for driving display devices and touch panels, e.g. ILI9486, ILI9341, or ST7789. Powerful and fast.
Other
7 stars 1 forks source link

Custom Font #2

Closed Boyeen closed 2 years ago

Boyeen commented 2 years ago

May I ask how you generate your font files? I need a few custom large numeric fonts and would like to know how to generate compatible files.

Thx

dejwk commented 2 years ago

I wrote a tool for that, but it isn't on github yet. I need to clean it up a little. I will try to do this over the weekend.

Boyeen commented 2 years ago

You’ll be tired of me soon… Thanks again.

dejwk commented 2 years ago

Here: https://github.com/dejwk/roo_display_font_importer

BTW, let me know if multi-displays and JPEG decoding worked for you.

dejwk commented 2 years ago

By the way, in case it is interesting, I also imported a large collection of 'Android-like' (material design) monochrome icons from Google, which can be used with this library:

https://github.com/dejwk/roo_material_icons

the originals can be browsed here: https://fonts.google.com/icons

Boyeen commented 2 years ago

Thanks a million for this.

I closed out the previous issue with some details of my project, you may have missed it. I have everything working superbly, dual 240x240 TFT displays each split vertically, so there are 4 digits. Then it was ridiculously easy to render my jpg images to an Offscreen (120x240) and scroll that nicely onto whatever digit I need to update. Overall I am blown away by your code AND your willingness to share with and support an old hacker like me.

Many, many thanks.

Tim

PS: I am not a java programmer, it looks like I need JAVA and gradle installed in order to build your java apps. Is that it? I am on a mac so I may try to use Docker. Thanks again.

Sent from my iPad

On Mar 6, 2022, at 7:11 AM, dejwk @.***> wrote:

 Here: https://github.com/dejwk/roo_display_font_importer

BTW, let me know if multi-displays and JPEG decoding worked for you.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

dejwk commented 2 years ago

Thank you for very kind feedback!

You will definitely need Java. I am not sure if you need to install Gradle; I think the script might install it for you, but I am not 100% sure.

You shouldn't need to explicitly build the code; the script calls gradle run, which builds it under the scenes.

I only tried this on Linux.

Let me know how it goes. If gradle doesn't work as magically as I think it would, I may consider creating a binary release (which would still need Java, though).

Boyeen commented 2 years ago

Well, I tried Windows and Linux. I installed java and can compile hello world etc but no luck on tour code. Gradle did indeed install automatically but the compilation failed "CompileJava not found". So I tried Linux and compile fails because of missing .so's. SO I give up for now, I have plenty to keep me busy at the moment and don't need to demonstrate my incompetence to the world any further :-) Thanks anyway. I am closing this issue.

Boyeen commented 2 years ago

Closed

dejwk commented 2 years ago

Sorry to hear it didn't work for you. The error 'Compile: Java not found' suggests that somehow gradle cannot find your Java installation; it must be something related to paths in the scripts.

I do want to make this stuff easy to use (and, consequently, more popular), and the issues you're running into give me a good example of gotchas that others may encounter as well. Let's keep this issue open. I will try to find some time (not sure if this week) to make a binary release that does not depend on gradle (and hopefully would have better luck working with Java you've installed).

dejwk commented 2 years ago

Hey - that was easier than I thought. I added binary releases to both importers - give them a try and let me know!

The image importer opens a UI if started without options. For batch mode, you can call it with -help to see command-line options.

Boyeen commented 2 years ago

Will do. Meanwhile, Windows try #2 was a total disaster.... but I actually had some success with Docker... who would have thought.

However I got this output "malformed class". Everything was freshly installed and cloned from Github but I used instructions that specified Gradle 5. Is that the problem?

Digest: sha256:84e3af801fa5796431cf95c35d36f4ef30e556c3c9ee9131dbecbc85aff94261 Status: Downloaded newer image for stakater/gradle:latest Starting a Gradle Daemon (subsequent builds will be faster) :compileJava Download https://jcenter.bintray.com/info/picocli/picocli/3.8.2/picocli-3.8.2.pom Download https://jcenter.bintray.com/info/picocli/picocli/3.8.2/picocli-3.8.2.jar Malformed class file [hexwriter/BinaryWriter.class] found on compile classpath, which means that this class will cause a compile error if referenced in a source file. Gradle 5.0 will no longer allow malformed classes on compile classpath.

Boyeen commented 2 years ago

OK, I am not a Java user... so this may be my fault... but with a fresh JRE installed I tried your jar files without luck

java -jar roo_display_image_importer.jar no main manifest attribute, in roo_display_image_importer.jar

dejwk commented 2 years ago

Did you try using the wrapper script in the bin/ directory? I.e., bin/roo_display_image_importer?

The 'malformed class' is really weird. It suggests that my Java compiler is generating class files that your JRE does not understand. I checked, and I am using Open JDK 11. I will test this cross-platform with different compilers and let you know. In the mean time, see if the script works on Mac.

Boyeen commented 2 years ago

Success! The wrapper script indicated that I was using a truly ancient version of the JDK. It appears to be the SE version installed by Photoshop (SE8 build 321). So, I installed the very latest (JDK 17) and the script ran perfectly.