- HD Picture Viewer [C] [TI-84 Plus CE]
- 11 Feb 2018 01:19:38 pm
- Last edited by TheLastMillennial on 03 Jan 2025 02:19:37 pm; edited 38 times in total
When you send a picture to your calculator via TI Connect CE, it super-reduces the quality to the point you can't make out much detail at all. In 2018 I discovered that the ICE coding language could display images at much higher quality! I successfully finished v1.0.0 of HD Picture Viewer using ICE in 2019. Unfortunately it was difficult to maintain and only supported up to 320x240 resolution images.
I started re-writing the entire project in C in 2020 despite knowing nothing about C. However, this broadened the program's features significantly! I added zx0 compression which unlocked support for 1080p+ pictures. I also added zooming, panning, and deleting pictures. In late 2023 I switched to C++ and pushed out v2.0.0 of HD Picture Viewer in early 2024.
It's finished!
Check out the GitHub Repository.
Need to send images from calculator to computer?
View data recovery instructions.
Example images:
v2.0.0 C++ Rewrite ToDo:
Higher Priority:
Lower Priority:
Long Term Features:
v1.0.0 ICE ToDo:
Example images (v1.0.0): here and here.
v0.0.1 ICE Proof of Concept:
This is the code for the convPNG.ini file
Note: your picture MUST be exactly 320 pixels wide and under 196 pixels tall!
Code:
This is the code to display an app var:
Code:
As I understand it, the code switches to 8bpp mode. Then it reads through the AppVar and treats every byte as a color defined by the xlibc palette. PT_ can explain how the code works better.
Example images (v0.0.1): here and here
TLM 600th post!
I started re-writing the entire project in C in 2020 despite knowing nothing about C. However, this broadened the program's features significantly! I added zx0 compression which unlocked support for 1080p+ pictures. I also added zooming, panning, and deleting pictures. In late 2023 I switched to C++ and pushed out v2.0.0 of HD Picture Viewer in early 2024.
It's finished!
- Download v2.0.0! Github | TI-Planet
- Download v1.0.2! Github | TI-Planet | TIcalc
Tutorial Video (v1.0.0): https://www.youtube.com/watch?v=s1-g8oSueQg
Teaser Video (v1.0.0): https://www.youtube.com/watch?v=QfrK-aNWzPU
Check out the GitHub Repository.
Need to send images from calculator to computer?
View data recovery instructions.
Example images:
v2.0.0 C++ Rewrite ToDo:
Higher Priority:
- Add a converter for PC
Set up C++ coding environment
Add custom palette support
Add picture detection
Add zoom abilities
Add pan abilities
Add compression
Clip only edge of image
Add thumbnails
Get this into a GUI program
Make tutorial
Release
Lower Priority:
- Add alphabetic sorting
Add double buffering
Long Term Features:
- Add 16bpp
Add GIF animations
Allow multiple compression methods
Access pictures from USB
Cache sub-images
v1.0.0 ICE ToDo:
- Get this into a GUI program
Add a converter for PC
Add custom palette support
Fix the thumbnails
Make tutorial
Add alphabetic sorting
Add double buffering
Release into Archives
Example images (v1.0.0): here and here.
v0.0.1 ICE Proof of Concept:
This is the code for the convPNG.ini file
Note: your picture MUST be exactly 320 pixels wide and under 196 pixels tall!
Code:
#GroupICE : ice_gfx
#Palette : xlibc
#PNGImages :
<image name>
#AppvarICE : <app var name>
#PNGImages :
<image name>
This is the code to display an app var:
Code:
[i]SPITE
sum(0
det(0
Copy(|ED40000,GetDataPtr(Open("<app var name>","r"))+2,<size, formatted as: width*height>
Pause
det(1
As I understand it, the code switches to 8bpp mode. Then it reads through the AppVar and treats every byte as a color defined by the xlibc palette. PT_ can explain how the code works better.
Example images (v0.0.1): here and here
TLM 600th post!