Coder Social home page Coder Social logo

Shifted output about lcd-image-converter HOT 15 CLOSED

riuson avatar riuson commented on June 30, 2024
Shifted output

from lcd-image-converter.

Comments (15)

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 11:12:55

I'll add the option "align to msb" and "to lsb"

Status: Accepted
Owner: [email protected]
Labels: -Type-Defect Type-Enhancement Component-Logic

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 11:26:14

So I guess it would align the data to left or right side of data block. I think that it would be more flexible to have it as a shift option with exact number of bits. Additionally I thought about adding explicit "padding" option, which would add some number of zeroes before/after data - notice that now when you have data as R5G5B5 and 32bit data blocks, the two zeroes are at the end of data block, while it would be more reasonable to have one zero after/before each pixel. That's why having shift or left & right padding would satisfy all possible combinations [;

Anyway - your software is the only one that "has it all":

  • fonts and images, using the same logic (brilliant!) - not just one,
  • opensource
  • color, monochrome and grayscale - not just one of these,
  • various transformation options, so it's not for XXX123 controller type - it fits them all,
  • ...
    so I'd like you to know that this software is great and thx for doing it!

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 11:30:27

data as R5G5B5 and 32bit data blocks, the two zeroes are at the end of data block, while it would be more reasonable to have one zero after/before each pixel.

Can you give an example of a real lcd with such bizarre organization of data?

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 11:45:01

You can do it yourself, for example with LPC2478 MCU you can connect the LCD panel to the embedded LCD controller whatever way you like - if you have some reason to have just R5G5B5 (I don't know - one pin just HAS to be used for something else) you can have such organization.

But on the other hand you can achieve one zero after pixel by just selecting 16-bit data blocks...

Once I needed to have monochrome data for LCD in blocks of 24-bits each (that's the size of flash memory on PIC24 microcontroller) - I needed LOTS of images in flash, and wasting 1/3 of memory didn't look too good in that aspect (; With left & right padding I could achieve that with your software, without it there's no way to do it - I could not use 8-bit blocks, the 24-bit words are possible to use only via assembly directives and each "block" just has to be 24-bits wide.

I'm kinda brainstorming about ways to make this software THE MOST versatile solution of them all. There are use cases that we don't know about (consider the above example), but that does not mean they don't exist.

I just think implementing left & right padding would take nearly the same amount of time as "align to msb / lsb", while the former is a solution for ALL possible combinations of shifting.

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 12:33:23

Ok, I'll think about the implementation of this shift..

24-bit data can be obtained by removing unnecessary byte from 32-bit data, with the help of some scripts.

Status: Started

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 04, 2012 14:07:05

Ok, I'll think about the implementation of this shift..

Options to pad data with 0 from either side would be much better - you could do shift by just padding it from right (from LSB side), you can separate data from other bits by padding it from left (from MSB).

24-bit data can be obtained by removing unnecessary byte from 32-bit data, with the help of some scripts.

But there's not unnecessary byte - it was mono display - 1bpp - and I needed to pack 24 pixels (24 bits) into one block. If it was just a removal of 0 from 0x00RRGGBB there would be on problem at all. I could probably generate data in bytes and then join them with some regex, but why do that if there is a software to do the conversion (;

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 08, 2012 12:21:58

The result is something like this ...
The program will have the ability to set any bits of the source image to any position in the output data block.
Screenshot of prototype is attached.

Attachment: prototype.jpg

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 08, 2012 12:24:18

Looks very promising and powerful - can't wait to test (;

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 10, 2012 14:44:20

Try this, revision 6b01a79 : https://code.google.com/p/lcd-image-converter/downloads/detail?name=lcd-image-converter-6b01a79c01bd-beta.zip Be careful, it is not completed

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 14, 2012 09:14:42

Added wiki page: https://code.google.com/p/lcd-image-converter/wiki/ConversionNew

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 17, 2012 09:27:04

OK, I'm testing (; Looks very powerful.

I've managed to crash the app while playing with the matrix three times, doing different things so I guess maybe some memory leaks or null pointers? Info from Windows:

Nazwa zdarzenia problemu: APPCRASH (name)
Nazwa aplikacji: lcd-image-converter.exe (app name)
Wersja aplikacji: 0.0.0.0 (app version)
Sygnatura czasowa aplikacji: 502d3842 (timecode of app)
Nazwa modułu z błędem: lcd-image-converter.exe (name of module with problem)
Wersja modułu z błędem: 0.0.0.0 (version of module with problem)
Sygnatura czasowa modułu z błędem: 502d3842 (timecode of module with problem)
Kod wyjątku: c0000005 (exception code)
Przesunięcie wyjątku: 0002b41b (exception shift? offset?)
Wersja systemu operacyjnego: 6.1.7601.2.1.0.256.1 (version of OS)
Identyfikator ustawień regionalnych: 1045 (regional settings ID)
Dodatkowe informacje 1: 0a9e (additional info 1)
Dodatkowe informacje 2: 0a9e372d3b4ad19135b953a78882e789
Dodatkowe informacje 3: 0a9e
Dodatkowe informacje 4: 0a9e372d3b4ad19135b953a78882e789

When you change the conversion matrix and press OK and then reopen the dialog, the matrix is in it's default state - probably have to save it to retain the settings...

I suggest changing this default color preset to be R5G6B5 (; Another preset for R8G8B8 would also be welcome (;

I also suggest adding some kind of spacer (thick line, empty line, ...) between Source and other rows and between result and fill, as these "pairs" are not actually part of the matrix itself (there are no bit operations from top to bottom on these two rows)

Set all to 0/1 does not work for Fill row.

It would be nice if the context menu also worked when clicking on the row name (e.g. on "Operation 1" too, not only on bits of this row).

I don't fully get the "Fill" parameter - maybe it could be named differently, or the wiki description improved a bit about this one (the gif is very cryptic - maybe some captions?).

Anyway - the crash is a problem, setting all bits in Fill to 0/1 is a minor issue, with two presets for typical color applications (R5G6B5 and R8G8B8) it would be cool (;

BTW - having 24-bit block data will probably result in having uint24_t variables defined according to issue 8 - there is of course no such type and uint32_t should be used... Anyway - 24-bit block can be emulated with 32-bit block and 0x00FFFFFF fill, am I right? If yes, then I think such block size could be removed...

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 17, 2012 09:51:58

I've tested lcd-image-converter-6483bdddd409-beta from Download section. Will try the one from comment #9.

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 17, 2012 09:55:12

#9 R6b01a79c01bd too old, it's not working.
"Fill" row can be set to "1", but not to "0". Because empty fill mask will produced infinite loop.

Can you write steps to reproduce application crash?

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on August 17, 2012 13:33:18

R849c00bbf31a -beta uploaded.

Fixed app crash;
Fixed settings saving;
Added lines between rows;
Added context menu to row's headers;
Removed "Set all to 0" from "Fill" mask menu;
"Fill mask" description updated at wiki;
Fixed issue 8 .

You are right. But 24-block data stays in options, because user can add "typedef unsigned int uint24_t" or have existing type definition on target platform; also type just can be changed in template files.

from lcd-image-converter.

riuson avatar riuson commented on June 30, 2024

From [email protected] on September 01, 2012 03:32:59

Rbe13e6f34980 uploaded.

Status: Fixed

from lcd-image-converter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.