Related
For amateur astronomy use, I needed to be able to bring down my A43's LCD brightness to a very low level. After a bit of experimenting, here is a very simple app that lets you have a darker screen than the OS normally allows:
http://code.google.com/p/superdim
It requires root.
This is my first independent Android app, so no doubt I screwed up in some way.
arpruss said:
For amateur astronomy use, I needed to be able to bring down my A43's LCD brightness to a very low level. After a bit of experimenting, here is a very simple app that lets you have a darker screen than the OS normally allows:
http://www.mediafire.com/?zwsg7aeqtcqogpm
It requires root.
This is my first independent Android app, so no doubt I screwed up in some way.
Click to expand...
Click to collapse
Nice, if you need it, make it. Personally, I find using Night Mode in Chainfire better than simply turning down brightness. It turns the brightness down, and renders everything in red, or whatever color you choose, but red is the correct choice to retain night sensitivity.
Obviously, I probably wouldn't watch a movie like that, but it's great for when I'm bow-fishing by full moon and want to change songs or something without wrecking my night vision.
For astronomy purposes, ChainFire3D's night mode won't be enough. At the lowest normal system backlight setting, if one is fully dark adapted under a dark sky, the amount of light leaking through the black pixels will be enormous--the screen will look grey rather than black (well, I haven't tried it, but I have experience with other devices). What one needs to do for serious night vision protection is to BOTH turn the view to red with ChainFire3D AND dim the backlight to a very low level with this app. And I am not even sure this will be fully satisfactory, because on my A43 the amount of light leakage is really big.
By the way, I posted a new version and source, and renamed the project to SuperDim. I also added a toggle for the power LED, since they made it green rather than red.
arpruss said:
For astronomy purposes, ChainFire3D's night mode won't be enough. At the lowest normal system backlight setting, if one is fully dark adapted under a dark sky, the amount of light leaking through the black pixels will be enormous--the screen will look grey rather than black (well, I haven't tried it, but I have experience with other devices). What one needs to do for serious night vision protection is to BOTH turn the view to red with ChainFire3D AND dim the backlight to a very low level with this app. And I am not even sure this will be fully satisfactory, because on my A43 the amount of light leakage is really big.
By the way, I posted a new version and source, and renamed the project to SuperDim. I also added a toggle for the power LED, since they made it green rather than red.
Click to expand...
Click to collapse
Hmm. That's good to know for the A43. I'd like to know what you think of the night mode in chainfire, just because there aren't many other people who worry about this topic. I live in St. Louis, a big city, so you probably have less ambient light, but I also wonder if my A101 gets darker than the A43. Even at night, I can turn it down to the point that I really can't read a damn thing.
Great idea with the Power LED. Once again, I don't think light levels drop low enough in St. Louis for it to bother me, but I hadn't even thought of disabling it.
To really be dark adapted, you need to be away from white light for about 45 minutes. (Though I find that after 15 minutes the payoff diminishes.) It's not going to happen outdoors in a big city.
I added profiles (three night, two day), and integrated SuperDim with ChainFire3D, so if you have ChainFire3D installed, you can control its night mode directly from SuperDim, and even include its night mode setting in a profile.
For my own use, I wanted a red screen dim profile for astronomy, a green screen dim profile for reading books in the dark, a dim full color profile for other night use, a bright green profile sometimes for reading books in the day, and a full color bright profile. But you can save whatever you want in the five profile slots.
I've been using figuring out the light control stuff for SuperDim as an opportunity for learning how to program for Android in preparation for writing (not from scratch--I got a donation of the AstroTools source code under the GPL to start with, and I may port some code from open2sky and AstroInfo for PalmOS) a high-end astronomy app. (I'm an experienced PalmOS developer, but quite new to Android.) I'm actually quite pleased. I was dreading java (I've usually developed in C), but I am finding Android development, especially with Eclipse, surprisingly pleasant.
arpruss said:
To really be dark adapted, you need to be away from white light for about 45 minutes. (Though I find that after 15 minutes the payoff diminishes.) It's not going to happen outdoors in a big city.
I added profiles (three night, two day), and integrated SuperDim with ChainFire3D, so if you have ChainFire3D installed, you can control its night mode directly from SuperDim, and even include its night mode setting in a profile.
For my own use, I wanted a red screen dim profile for astronomy, a green screen dim profile for reading books in the dark, a dim full color profile for other night use, a bright green profile sometimes for reading books in the day, and a full color bright profile. But you can save whatever you want in the five profile slots.
I've been using figuring out the light control stuff for SuperDim as an opportunity for learning how to program for Android in preparation for writing (not from scratch--I got a donation of the AstroTools source code under the GPL to start with, and I may port some code from open2sky and AstroInfo for PalmOS) a high-end astronomy app. (I'm an experienced PalmOS developer, but quite new to Android.) I'm actually quite pleased. I was dreading java (I've usually developed in C), but I am finding Android development, especially with Eclipse, surprisingly pleasant.
Click to expand...
Click to collapse
Yeah, my point exactly. I'm about 15 miles away from the city when out on the river, but that's not really far enough to get out of the city's light pollution.
Great work integrating with Chainfire. I'll give it a try next time I'm out. It should be nice having everything in one place.
I'll be looking forward to the astronomy app. It's been a looong time since I've worked on one, but I still have the DOS version of CyberSky I helped develop, so I guess I still have a fondness for them.
I posted 0.23, fixing a bug that made day2 = day1.
And I posted 0.30, adding support for toggling keyboard and button backlight on devices that have them.
I use screen filter to make my screen dimmer..
its in the market..
1. As far as I can tell, Screen Filter doesn't adjust the backlight--it only lowers the LCD pixel intensity. As a result, even if you turn Screen Filter to something really low like 2%, if you take your device to a dark area, you'll see a grey glow coming from the screen, because the backlight leaks through the black pixels.
To remedy the grey glow issue, you need to turn the backlight down, but the OS only lets you turn it so far down (10/255 on my A43; some phones only allow 20/255) without directly writing to /sys/class/leds/lcd-backlight/brightness (which needs root, and is what SuperDim does).
I also suspect that in a dark area, with brightness set to a low value, lowering backlight will produce a more visually attractive image than Screen Filter, because lowering the backlight will make a black background be fairly black.
That's all for backlit LCD screens. OLED screens are a completely different kettle of fish, and SuperDim won't help you much there (though it'll still let you set themes controlling LEDs and ChainFire3D nightmode).
2. I generalized the code a little so it should let you control whatever LEDs your device has, as long as they have a /sys/class/leds/*/brightness interface.
3. By the way, ChainFire3D's nightmode is a touch imperfect: if you set it to red, I think it just turns off the green and blue channels. That means that green and blue visual elements cease to be visible. A somewhat better nightmode would convert the image from RGB to grayscale, and then turn off the green and blue channels. I don't know how easy to implement that would be--I don't know enough about GL blending (I tried to google but couldn't find an answer simple enough for me to understand).
arpruss said:
1. As far as I can tell, Screen Filter doesn't adjust the backlight--it only lowers the LCD pixel intensity. As a result, even if you turn Screen Filter to something really low like 2%, if you take your device to a dark area, you'll see a grey glow coming from the screen, because the backlight leaks through the black pixels.
To remedy the grey glow issue, you need to turn the backlight down, but the OS only lets you turn it so far down (10/255 on my A43; some phones only allow 20/255) without directly writing to /sys/class/leds/lcd-backlight/brightness (which needs root, and is what SuperDim does).
I also suspect that in a dark area, with brightness set to a low value, lowering backlight will produce a more visually attractive image than Screen Filter, because lowering the backlight will make a black background be fairly black.
That's all for backlit LCD screens. OLED screens are a completely different kettle of fish, and SuperDim won't help you much there (though it'll still let you set themes controlling LEDs and ChainFire3D nightmode).
2. I generalized the code a little so it should let you control whatever LEDs your device has, as long as they have a /sys/class/leds/*/brightness interface.
3. By the way, ChainFire3D's nightmode is a touch imperfect: if you set it to red, I think it just turns off the green and blue channels. That means that green and blue visual elements cease to be visible. A somewhat better nightmode would convert the image from RGB to grayscale, and then turn off the green and blue channels. I don't know how easy to implement that would be--I don't know enough about GL blending (I tried to google but couldn't find an answer simple enough for me to understand).
Click to expand...
Click to collapse
I assumed it did convert to greyscale first before tinting, but you may be right. I'll have to think how to test that.
msticninja said:
I assumed it did convert to greyscale first before tinting, but you may be right. I'll have to think how to test that.
Click to expand...
Click to collapse
Quick test: If you set CF3D to blue, anything that's pure yellow goes black. For example, if you go to SuperDim, the left half of the brightness adjustment bar is yellow and disappears completely.
Another test: go with the browser to http://www.w3schools.com/html/html_colors.asp in red mode. Notice that the blue 0000FF and green 00FF00 samples can't be distinguished from 000000 black, while the red FF0000 can't be distinguished from white FFFFFF.
arpruss said:
Quick test: If you set CF3D to blue, anything that's pure yellow goes black. For example, if you go to SuperDim, the left half of the brightness adjustment bar is yellow and disappears completely.
Another test: go with the browser to http://www.w3schools.com/html/html_colors.asp in red mode. Notice that the blue 0000FF and green 00FF00 samples can't be distinguished from 000000 black, while the red FF0000 can't be distinguished from white FFFFFF.
Click to expand...
Click to collapse
Seems like pretty clear results to me. I wonder if converting to greyscale first would even be feasible, from a coding, and from a processor cycle standpoint. It would have to use extra power, but I wonder how much. It doesn't really matter for me, everything I need to do is doable, but interesting nonetheless.
msticninja said:
Seems like pretty clear results to me. I wonder if converting to greyscale first would even be feasible, from a coding, and from a processor cycle standpoint. It would have to use extra power, but I wonder how much. It doesn't really matter for me, everything I need to do is doable, but interesting nonetheless.
Click to expand...
Click to collapse
There may be a way of hardware accelerating this.
There seems to be very little actual documentation on the various eInk update modes.
Most of the information seems to have been extracted from working code.
Some of that code does not seem to be optimal in any case.
I'd like to start this thread on a discussion of the update modes.
You can look at all the code posted, but the bottom line is that eInk mode is configured by passing six discrete pieces of information to the EPD driver.
These six pieces may be wrapped up into a single static entity.
Name of entity requesting change (for logging purposes only)
Region, one of enumRegion[] (Region 4-7)
A rectangle, normally {0, 0, 600, 800}
Wave, one of enumWave[] (GC, GU, DU, A2, GL16, AUTO)
Mode, one of enumMode[] (INACTIVE, ACTIVE, ONESHOT, CLEAR, ACTIVE_ALL, ONESHOT_ALL, CLEAR_ALL)
Threshold, an int 1-15, only applies to A2 mode
A2 is the one bit, fast drawing method. It leaves ghosting behind.
In some applications, you would like to enable faster scrolling in A2 mode and then have it revert to "normal" upon completion.
I have an application with a full screen scroll.
After experimenting with the values, these two configs seem to do the job nicely.
Code:
configA2Enter = makeConfig(rpc, waveEnums[WAVE_A2], regionEnums[REGION_6], modeEnums[MODE_ACTIVE_ALL], THRESHOLD);
configA2Exit = makeConfig(rpc, waveEnums[WAVE_AUTO], regionEnums[REGION_6], modeEnums[MODE_ACTIVE_ALL], 0);
No user intervention is necessary, it scrolls quickly and redraws a clean image when done.
(A view.invalidate() is necessary after you invoke configA2Exit)
Does anybody have any further insight into these values or suggestions for improving them?
Some additional information on the A2 ("no refresh", 1 bit) mode.
Some of the other modes can be selectively applied to portions of the screen.
The A2 mode may only be applied to the entire screen.
The threshold value, which some may construe as "brightness" or "contrast"
is the cutoff threshold between black and white of the original image.
A value of 1 will only generate black in the darkest areas of the original image.
A value of 15 will only generate white in the whitest areas of the original image.
That is, 1 will give you a light image, 15 a dark image.
Renate NST said:
Some additional information on the A2 ("no refresh", 1 bit) mode.
Some of the other modes can be selectively applied to portions of the screen.
The A2 mode may only be applied to the entire screen.
The threshold value, which some may construe as "brightness" or "contrast"
is the cutoff threshold between black and white of the original image.
A value of 1 will only generate black in the darkest areas of the original image.
A value of 15 will only generate white in the whitest areas of the original image.
That is, 1 will give you a dark image, 15 a light image.
Click to expand...
Click to collapse
Nice find! I didn't know that was a B/W threshold. But I think you meant "1 gives a light image and 15 a dark image".
I've just tried using this in NoRefreshToggle, but the result was not as good as before. The image is much more just solid black and white because you can't see the dither patterns that represent grey (they appear only at very specific white levels, which would be nice to tweak too).
What I actually use for "contrast" adjustment in NoRefreshToggle is a different approach. Using a fixed threshold of 14 (dark image), I've managed to lower the black level (turning it more greyish) to achieve a smaller color range. This way, the dither patterns appear more often. However, my technique to achieve this effect is not so elegant: I overlay the entire screen with a semi-transparent white pane. This has the inconvenient of controlling the pane visibility: whenever A2 mode is turned off (by user or system), I need to hide the pane View.
If I could temporarily avoid the automatic changing of screen modes by the system, this would be much simpler. I've had no success at this issue so far.
marspeople said:
I think you meant "1 gives a light image and 15 a dark image".
Click to expand...
Click to collapse
Yup, good catch. The preceding two sentences were correct. I edited the third.
I have a demo panning grayscales. It's easy to see where the threshold is occurring. Shown below.
Oh! I did see something about the dither modes.
They would certainly be useful for video, less so for text.
I think a system-wide use of A2 would be a bit counterproductive.
The fonts look better with 16 shades.
The best use would be to have browsers and viewers use A2 for panning and zooming.
And another thing:
I don't know how you are getting the dither in there, but since you are doing an overlay anyway,
maybe you should try a halftone screen approach to see how it would work.
The simplest halftone screen would be a checkerboard with two different transparencies.
That wouldn't sacrifice too much resolution.
Renate NST said:
I think a system-wide use of A2 would be a bit counterproductive.
Click to expand...
Click to collapse
i seems to me that n-r mode would be much more usefull if would could regulate when its on a and when off. Its quite pain running the app again and again. it seems to me that quicker reaction is much better than nicer pictures in average use - pdf reading, browsing, video, managing system...
marspeople said:
I've just tried using this in NoRefreshToggle, but the result was not as good as before. The image is much more just solid black and white because you can't see the dither patterns that represent grey (they appear only at very specific white levels, which would be nice to tweak too)
Click to expand...
Click to collapse
I don't think the dithering can be 'tweaked' as such. It's caused by the reduction of 24-bit color images to the 16-bit colorspace of the OS. Dithering is performed by the graphics hardware to prevent obvious colour banding, and there's no OpenGL functions to control dithering parameters.
The A2 mode seems to choose a threshold value for black in the 16-bit colorspace. Values above this are white. In order to obtain black and white dithering we have to pick values in the 24-bit colorspace which all lie in the same 16-bit band.
The easiest way I've found is to keep the R and G values at 255 and vary the B value. I think the default threshold lies at 255,255,198. If you start at that and increase the B value you get 7 dithered grey shades before you reach white.
Guys, as far as i know, eink display is build of tiny capsules, much smaller that one pixel is, and a chip is joining them into pixels. So mayby there is a way to divide single pixel into 2 or even 4? It is much much work, but it would make us easier draw some tones of monochrome? Example: to get dark gray, instead of displaying one of five black pixels white, we can make one's "subpixels" 3/4 black, 1/4 white.
Does it make sense/do you get it?
Renate NST said:
I think a system-wide use of A2 would be a bit counterproductive.
The fonts look better with 16 shades.
The best use would be to have browsers and viewers use A2 for panning and zooming.
Click to expand...
Click to collapse
I agree with you. But having temporary exclusive control of A2 mode would make my application more efficient. I don't intend to use A2 system-wide.
Renate NST said:
And another thing:
I don't know how you are getting the dither in there, but since you are doing an overlay anyway,
maybe you should try a halftone screen approach to see how it would work.
The simplest halftone screen would be a checkerboard with two different transparencies.
That wouldn't sacrifice too much resolution.
Click to expand...
Click to collapse
I just tried this but I've got nothing more than a simply darker and checkered image. I don't understand how it would be better.
marspeople said:
I don't understand how it would be better.
Click to expand...
Click to collapse
Well, halftone screens have been around forever.
Think of it this way, it would give you two different thresholds.
With a bigger pattern you would get more thresholds but a coarser pattern.
That is always the way with dithering or halftone.
Probably a screen would not work well with an underlying dither.
A useful observation from http://forum.xda-developers.com/showthread.php?t=1502723&page=11 is that by listening to the screen you can hear screen activity.
After a quick test I suspect ONESHOT mode allows the screen to enter a power saving mode (in which the screen is completely silent) after a few hundred ms of inactivity, while ACTIVE prevents it. No idea whether there are other issues involved.
The native Reader.apk uses GU, ONESHOT_ALL when turning pages.
Every 6th page it uses GC, ONESHOT_ALL.
In an overnight test with the nook screensaver / lock screen mode inhibited by my application and no screen updates, I obtained power consumption of 0.75% / hour with ONESHOT mode. In a previous test with ACTIVE mode I got ~7% / hour with the same scenario(!)
With fast screen updates of ~ 1Hz ONESHOT does not appear to give any power saving benefit over ACTIVE mode, and a quiet hiss can be heard from the screen at all times in both modes at this refresh rate. I think this indicates the ONESHOT mode allows the screen to enter a power saving mode after a period of inactivity.
Neither of these were scientific tests but I strongly suggest trying ONESHOT mode in favour of ACTIVE whenever using A2 mode.
Well, there must be some benefit sometime to the ACTIVE mode or they wouldn't have it.
It's hard to differentiate the different modes, but it seem that ACTIVE responds quicker with less delay.
I switch to ACTIVE_ALL, A2 for panning and switch back to ONESHOT_ALL, AUTO afterwards.
(I don't use full-time A2).
See my demo of panning: http://forum.xda-developers.com/showthread.php?t=1563645
I'm running about 7%/hour drain. My Nook is not suspending when I do a simple power button click. I don't know why.
A few folks seem to be using EpdController in a useful manner.
Their use of Java reflection is clever, but it's not supposed to be that difficult.
I wrote a Java stub (basically declarations) for EpdController and wrapped it in a jar.
If you just put this jar in your compilation classpath with your normal android.jar
then you will be able to use the EpdController without all the fuss and muss.
For example, in my latest (unreleased) version of UsbMode I want the blinker to go on and off cleanly:
Code:
EpdController.setRegion("UsbMode", EpdController.Region.APP_3, blinker, EpdController.Wave.DU);
That's it, one line, no initialization.
The EpdController class was designed to handle such trivial uses.
Note: This jar itself has no functionality, all the method bodies are {}.
You will have to import android.hardware.EpdController
The 1.2 update uses a different EpdController and has a new EpdRegionParams.
This may or may not break code written for previous versions.
The best way to write code to use EpdController is to have it detect if there is no Epd
(i.e. for other devices), the old version or the new version.
Wrap a try/catch around a Class.forName("android.hardware.EpdController").
Wrap a try/catch around a Class.forName("android.hardware.EpdRegionParams").
The new epd.jar in the signature will allow you to compile without using redirection both the old and the new.
For details on the changes, see: http://forum.xda-developers.com/showpost.php?p=35390192&postcount=8
Bump & additional info.
By experimenting and reading documentation for other eInk controllers I've figured out the following:
Controllers support different algorithms for updating the pixels depending on the precision of the gray scale required and the compensation for previous ghosting.
On the Nook, we have the choice of waveform modes:
GC
GU (gray update)
DU (direct update)
A2
GL16
AUTO (auto selection of algorithm)
The screen can be divided up into regions where different algorithms may be used.
Some controllers support 15 regions, ours supports 8.
4 of these regions are earmarked for system usage, specifically:
Toast (popups)
Keyboard (soft keyboard layout)
Dialog (popups)
Overlay
The remaining 4 regions are left for the user.
Note: "HwRegion" is an enum for the complete 8 regions, "Region" is an enum for the 4 user regions.
An example: In my audio recorder I have two regions set aside for the VU bar graphs.
By setting these two regions to DU I get rid of update clutter and the response is quicker.
Currently, the EpdController in the Nook only operates with portrait coordinates.
If you wish to use this while in landscape mode you will have to rotate the coordinates first yourself.
It's sometimes hard to see exactly what/if some EPD setting is doing.
A good way to check it is to set a region for one half the width of whatever active graphic element you are trying to improve.
The difference can be very clear.
Renate NST said:
There seems to be very little actual documentation on the various eInk update modes.
Most of the information seems to have been extracted from working code.
Some of that code does not seem to be optimal in any case.
I'd like to start this thread on a discussion of the update modes.
You can look at all the code posted, but the bottom line is that eInk mode is configured by passing six discrete pieces of information to the EPD driver.
These six pieces may be wrapped up into a single static entity.
Name of entity requesting change (for logging purposes only)
Region, one of enumRegion[] (Region 4-7)
A rectangle, normally {0, 0, 600, 800}
Wave, one of enumWave[] (GC, GU, DU, A2, GL16, AUTO)
Mode, one of enumMode[] (INACTIVE, ACTIVE, ONESHOT, CLEAR, ACTIVE_ALL, ONESHOT_ALL, CLEAR_ALL)
Threshold, an int 1-15, only applies to A2 mode
A2 is the one bit, fast drawing method. It leaves ghosting behind.
In some applications, you would like to enable faster scrolling in A2 mode and then have it revert to "normal" upon completion.
I have an application with a full screen scroll.
After experimenting with the values, these two configs seem to do the job nicely.
Code:
configA2Enter = makeConfig(rpc, waveEnums[WAVE_A2], regionEnums[REGION_6], modeEnums[MODE_ACTIVE_ALL], THRESHOLD);
configA2Exit = makeConfig(rpc, waveEnums[WAVE_AUTO], regionEnums[REGION_6], modeEnums[MODE_ACTIVE_ALL], 0);
No user intervention is necessary, it scrolls quickly and redraws a clean image when done.
(A view.invalidate() is necessary after you invoke configA2Exit)
Does anybody have any further insight into these values or suggestions for improving them?
Click to expand...
Click to collapse
Excellent work! Do you happen to understand/can write up what the various fast mode/no refresh hacks do/how they use these different modes?
I've had X 'running' on my nook but only by triggering a full refresh every few seconds, and wondered how I could be more selective.
My reading of Norefresh was that it was doing something like parsing android log structures for areas that have changed.
Is there an easy way to trigger a refresh of part of the display from userspace, preferably directly on the driver or fb?
As for where the dithering is done, my guesswork is this is done by a blob running on the DSP module within the OMAP (which is perhaps the only interesting use of it I've seen).
Dave
Just done some playing writing directly to the entires in /sys/class/graphics/fb0 ; so for example:
echo -n 100,100,200,200,0,14 > epd_area
echo 2 > epd_refresh
causes the square 100,100->200,200 to be refreshed
the 14 being REGION(8)+CLEAR(4)+ONESHOT(2)
the 0 is wvfid+threshold*65536 I think.
I've put some code that runs under X to trigger updates; here (actually the comment is wrong, it's currently using oneshot+clear);
I never managed to get active to work.
http://forum.xda-developers.com/showthread.php?p=42393733#post42393733
Dave
I'm thinking of getting the SGSIII now that it's out in black. I had the white version earlier in the year but returned it as I wanted to wait for black
I keep looking on the internet to see and find out if the latest version of Cyanogenmod includes settings to calibrate the screen but haven't really found any evidence to support or confirm this. I know there is sometimes confusion when using the word "calibration" when it comes to android, as users want to calibrate the accuracy of the touch sensors more so than the display.
In iOS, there's a fantastic tweak in Cydia called "Color Profiles" which allows the user to calibrate the colour of the display (system-wide, that includes gaming, video, apps etc). You get white balance, gamma, temperature and black level control
Is there any such option in Cyanogen mod; now or in the future? It would be great to have full access to RGB controls to calibrate an OLED screen
Not posted for a little while but I was hoping someone could help me with suggestions of what the best app / method for converting a black and white image in to colour was. My google search results have just been desktop programme specific or about converting a colour image to black and white. I prefer to sketch in grey scale and my dad was asking a similar question for scanning and processing some of his old photos.
Thanks for any help!
hertsjoatmon said:
Not posted for a little while but I was hoping someone could help me with suggestions of what the best app / method for converting a black and white image in to colour was. My google search results have just been desktop programme specific or about converting a colour image to black and white. I prefer to sketch in grey scale and my dad was asking a similar question for scanning and processing some of his old photos.
Thanks for any help!
Click to expand...
Click to collapse
Are you asking about photographs or comic art/illustrations?
For vintage style photos it's a labor of love.and hand tinting techniques. I only know photoshop and it's tools
You would usullay first get a similar looking color photograph and create a simplified color palette from it. and then start blending colors in. in accordance with the black levels in the b/w.
A Quick trick I would use is to block out regions of similar color and then use a gradient map over that block/mask to put in the gradient shades corresponding to different levels of blacks. After that it is matter of putting in subtle colors on and on.
There are a lot of other techniques, like switching color modes and using channels etc and what not for this and they all vary based on the subject/content basically what all you can get away with.
Now if you are specifically asking for an app for android then I wont know any best app as of now as all apps have some features better than the other and then so.
But my main basic requirements would be masks, layers, blending modes (multiply / color/ and overlay) at the minimum and then some fine blending tools. like a soft/fine scattered smudge brush and custom gradients.
for sketch/line art.
look comic art coloring books or videos on youtube as mostly all follow same basic methods at start and later diversify into what technique suit the artists the most.
Sketch in top layer with multiply blend mode (or which suits your content best and adjust opacity).
In the underlying layers,block in solids, then details followed by highlights and shadows (dodging/burning).
There are other techniques like vector illustrations etc but that is a whole different subject/study in itself.
I doubt you are going to find any program that is going to do this for you on it's own, but there may be programs that provide you with tool get you going.
If you don't hae photoshop,other good candidates on PC would be GNU Gimp and Paint.net especially with their plugins as we well as layer support you should be able to get somewhat decent results. However i would strongly advise using a tablet. If you don't have one on pc, you should be able to find some apps that allow you to use the note 8 as a digitizer/tablet for pc as well.
intelliriffer said:
Are you asking about photographs or comic art/illustrations?
For vintage style photos it's a labor of love.and hand tinting techniques. I only know photoshop and it's tools
You would usullay first get a similar looking color photograph and create a simplified color palette from it. and then start blending colors in. in accordance with the black levels in the b/w.
A Quick trick I would use is to block out regions of similar color and then use a gradient map over that block/mask to put in the gradient shades corresponding to different levels of blacks. After that it is matter of putting in subtle colors on and on.
There are a lot of other techniques, like switching color modes and using channels etc and what not for this and they all vary based on the subject/content basically what all you can get away with.
Now if you are specifically asking for an app for android then I wont know any best app as of now as all apps have some features better than the other and then so.
But my main basic requirements would be masks, layers, blending modes (multiply / color/ and overlay) at the minimum and then some fine blending tools. like a soft/fine scattered smudge brush and custom gradients.
for sketch/line art.
look comic art coloring books or videos on youtube as mostly all follow same basic methods at start and later diversify into what technique suit the artists the most.
Sketch in top layer with multiply blend mode (or which suits your content best and adjust opacity).
In the underlying layers,block in solids, then details followed by highlights and shadows (dodging/burning).
There are other techniques like vector illustrations etc but that is a whole different subject/study in itself.
I doubt you are going to find any program that is going to do this for you on it's own, but there may be programs that provide you with tool get you going.
If you don't hae photoshop,other good candidates on PC would be GNU Gimp and Paint.net especially with their plugins as we well as layer support you should be able to get somewhat decent results. However i would strongly advise using a tablet. If you don't have one on pc, you should be able to find some apps that allow you to use the note 8 as a digitizer/tablet for pc as well.
Click to expand...
Click to collapse
Thanks for the detailed reply. I was asking for both photos (for my father) and drawings (for myself), but you have pretty much confirmed my fears that the only way to proceed with the work flow I had originally intended is to use a PC and that there was no such option on a tablet.
I have settled on CloverPaint for my artwork as it seems to have the most comprehensive set of features and functionality. I've been reading ImagineFX magazine to try and get some tips on working in the digital medium and the method that seemed to suit me the most was to first draw the entire picture in grayscale and then add a colour layer for each section of the photo in order to complete the image. That way, if i wanted to tweak the colours it would be a simple task rather than having to rework that entire part of the image. I cant seem to find the equivelant method in android only.
http://www.cgarena.com/freestuff/tutorials/photoshop/spiderharp/index3.html
This is the type of thing im talking about. May be the option is available and I just havent figured out the correct layer setting?..
If cloverpaint has color blend mode or similar, then it should be relatively easy to follow the workflow in the article.
Color blend mode (of a layer) only affects the Hues and Saturation of the colors in the underlying layer (with the color in itself) totally ignoring any luminousity.
If that is not available then you might have to follow some older workflow that uses screen/ multiply and overlay blend modes and different layer structures.
I'd say play around with the just the blending modes for a day or two that cloverpaint provides to get a hang and feel for them. try with same color on top and bottom layers and then different colors, different opacity, and luminosity etc.
Is image persistence normal for S20's screen or OLED screens in general?
For example, playing a bright video game with black aspect ratio bars, leaves a lasting persistent image, where on dark pastel backgrounds you can clearly see where bars and game were.
Or writing a long article, leaves remnants of Android's nav. buttons, Chrome's address bar, and even keyboard visible, when tested on dark pastel backgrounds.
These persistent images gradually disappear, but it takes a long time to disappear completely. Do you experience something similar to this?
Thanks.
Scroll down for testing methods, post #5. Start by opening dark gray image, view full image, zoom in, do you see discoloration?
Image retention (persistence) is a somewhat common issue with all OLED. That said you shouldn't be experiencing it unless your constantly rocking your screen at 100% brightness, or near there, for hours on end.
I found this cNet article which explains it really well.
https://www.cnet.com/how-to/oled-screen-burn-in-what-you-need-to-know-now/
scaredy-cat said:
Is image persistence normal for S20's screen or OLED screens in general?
For example, playing a bright video game with black aspect ratio bars, leaves a lasting persistent image, where on dark pastel backgrounds you can clearly see where bars and game were.
Or writing a long article, leaves remnants of Android's nav. buttons, Chrome's address bar, and even keyboard visible, when tested on dark pastel backgrounds.
These persistent images gradually disappear, but it takes a long time to disappear completely. Do you experience something similar to this?
Thanks.
Click to expand...
Click to collapse
The Galaxy S7 and S8 had issues with Screen Burn which Samsung improved going forward from the S9. If the ghost images gradually disappear it isn't Screen Burn which causes permanent discoloration. If under warranty you may wish to get the device replaced, it doesn't seem the problem will correct itself over time. The other options I would consider are uninstalling apps which you enabled just before the problem appeared or performing a Factory Reset.
if you're playing games and the background is constantly moving, then there should be little, or no image retention. However, if you are using Google Maps and high brightness and stationary for a long period of time (eg stuck in traffic) then I would consider some image retention could be present.
Thank you for your answers. Bold text for topics. Testing methods at the end of this reply.
Was not aware OLED screens' image retention is such a common issue, but I knew OLED screens are prone to burn-in, read about it online, and saw it on my relatives' older devices, so out of the box I turned on the dark mode and changed wallpaper to black.
I preferred regular Android's navigation buttons to gestures, because of ergonomics, due to phones center of mass (wish it was more bottom heavy), when using with one hand, balancing phone while performing gestures always feels like I'm about to drop the phone, I also find gestures to be slower, simple tap vs sliding your finger. And on top of that, I have carpal tunnel syndrome, so it's much easier to simply reach and tap. But now I started using gestures, as a burn-in preventative measure.
By the way, having Chrome open for around 20 minutes, and quickly switching to Display Tester's BurnIn detection, I can already distinguish Chrome's address bar section, and clearly see tab switcher button. This will gradually disappear, but the fact that afterimage appears so quickly and remains for so long is concerning, since I feel such image retention might indicate my display may be prone to burn-in, but of course, I don't know this for sure, just my uneducated guess.
Having dark mode keyboard open for around an hour, and I can see remnants of it even on grey backgrounds of folders.
Back to reply..
I never use my screen at full brightness, it's always set to somewhere around 50%, and as I said earlier, image retention starts to occurs in a matter of minutes. Images do gradually disappear, but it takes a long time, and when I use screen for hours with static elements, it felt like it took awfully long time to disappear, but to determine how long exactly it takes for them to appear and disappear, I need to do more thorough testing.
Yes, when playing games, indeed, a lot of things are moving, except for Heads-up Display, but I first noticed this image retention issue playing an older video game called "Super Cat Bros". That game is not optimized for such wide-screen phones as S20, so on each side you have a black bar, display is split into 3 sections - bar-game-bar. That game is very colorful and has lots of solid colors, so after I finished playing, in dark user interface backgrounds I noticed discoloration, later looking at solid color backgrounds l noticed clearly where each section was, so bar-game-bar. Because sides of a display were turned off, and all action happened in the middle, you can clearly see which part of the screen was the most active.
This is why I'm coming to conclusion, that dark mode alone is still only a small part in burn-in prevention, you should blackout everything, including websites (I remember firefox had plug-in like that, capable of replacing background and font colors), switch to a dim keyboard preferably without visible keys with orange-red colored font, download oled friendly icon packs, watch movies cropped in, so you're not left with permanent discoloration in place of "black bars", and play games full-screen, only then wear will be uniform. Seems like too much work. I wish micro-led displays would become widespread sooner.
I don't think factory reset or uninstalling apps will help, because it appears to be not software related.
At least not software user can update, such as display's firmware, but I don't know for sure just how independent display is from other phone's guts. Even then, I don't think firmware can fix this.
The phone is under warranty, since it's new, used for a few moths, and unmodified, but sadly is probably not an option, because in my country, gaslighting customers is fairly common. Service center will probably take it away for a few weeks, then return it scratched up, and say they didn't find any issue. So unless it's a serious burn-in, that's visible always and on every background, it'll be extremely difficult to make a return, and even then they'll probably tell it's normal wear, but then at least you can without explaining too much contact consumer protection and show them the problem.
Software used for discovery and testing:
• Super Cat Bros (video game)
https://play.google.com/store/apps/details?id=com.FDGEntertainment.SuperCatBros.gp
Play it for an hour (or more) and then test on solid darker pastel colors, do you see discoloration? Report for how long you played and how long discoloration was visible. Do not reopen game when retesting discoloration, because it may appear permanent. I know some people are not good at seeing minute differences in shades, but at first it should be very obvious which parts were black bars and part where game ran.
• Display Tester (app)
https://play.google.com/store/apps/details?id=com.gombosdev.displaytester
Very good display tester, free, lots of features and tests, and works on wide-screen displays, enable "use immersive mode if possible" in the settings. I think default color in BurnIn tester is very good at revealing discoloration, but you can play with sliders, just remember position which reveals discoloration the best.
• I'll also attach solid color image, which works for revealing discoloration.
And another dark gray image, which also helps reveal discoloration, use in dark room at around 50% screen brightness (play around), no matter how much you zoom in or out, it appears like screen has gradient, notifications bar icons are also visible, not sure if it's temporary or a permanent discoloration. I recommend opening these images with a gallery app, set to full screen, or simply pinch to zoom, and tap screen one time to hide gallery's UI elements. Tilt phone left and right, move towards and away from yourself, do you see discoloration?
You can also open them up with browser, and examine your screen, but I found you can't hide all UI elements, so better use gallery or other image viewer.