When asked what is the easiest controller to use, the answer of course is the one that is used by the most people you know so you can get help.
The preferred microcontroller around here is the PIC from Microchip. It will take a while to learn, but it can most likely handle what you want to do. There are diagrams on how to make your own programmer, and places to buy them pre-made. Then you are going to need to obtain a PIC. The 16F877 is a standard one to use. You could use a 16F871 which is the same thing but less memory and a little cheaper. These have 33 I/O pins. You could have your 23 column controls, 7 row controls, and 3 inputs. It would fit the physical pin requirements, but there's no room to grow. You could have no additional inputs or outputs without some modifications. Anyway, once you get a programmer, the first logical place to start is to get a tutorial that will show you how to blink a single LED. Then from there, blink 8 LEDs at the same time, which will be a really really simple modification. From there, blink 24 LEDs. Then change it so it only does 23 LEDs. Then once you've got that idea down, put different patterns on each of the 23. Once you're comfortable with that, you can strobe them. One control signal will activate row 1, then you load your 23 LED patterns. Turn off row 1, activate row 2, then load the 23 LEDs with the second line of your image, 3rd, 4th, etc. The amount of time that they are on and off will control their brightness. If they are on for a longer period than they are off, they will be brighter. As for the inputs, it would just be a simple IF / THEN / GOTO to determine which patterns get sent to the 23 column outputs.
This will take a long time for a beginner to do, and most likely you will have to code just about everything from scratch. There will be lots of learning, but we're here to help.