convert olny bright gray to color

Ask for help and post your question on how to use XnView Classic.

Moderators: XnTriq, helmut, xnview

Post Reply
wunderer
Posts: 5
Joined: Sat Feb 14, 2015 10:14 am

convert olny bright gray to color

Post by wunderer »

hi everybody,

in a gray-scale image, how to change the pixels, that are brighter/higher than e.g. rgb(180,180,180) to more red, e.g. rgb(240,140,140) ?

so I want to keep the darker gray pixels e.g. rgb(070,070,070) as is, but for the brighter ones increase red, and/or decrease green and blue
once a certain threshold is reached. given a threshold t, and a given grey pixel rgb(o,o,o), my algorithm may look like:
if (o > t) {r=min(255, o+60); g=o-40; b=o-40; newPix=rgb(r,g,b)}
something similar is probably already implemented (much smarter of course) in the "sepia" function, where you turn gray into color.

which image format would be the easiest ? image size I am looking at, is about 900x600.
I tried already some perl scripting, but got lost/stuck with linking pm-modules and dylibs running on an old G5 Mac OS 10.4.11.

thanks 4 any help and suggestions, wunderer.
User avatar
XnTriq
Moderator & Librarian
Posts: 6336
Joined: Sun Sep 25, 2005 3:00 am
Location: Ref Desk

Re: convert olny bright gray to color

Post by XnTriq »

Hi wunderer

I don't know how to achieve this in XnView, but I've done similar stuff in (old shareware versions of) Paint Shop Pro by converting my image(s) to 256 shades of gray, exporting the color table to PSP's palette format (plain text), editing the values (Excel + Notepad), saving the result back to a PSP palette and applying the colors to my image(s) with the Maintain indexes option enabled.
[color=green]greyscale.pal[/color] wrote:

Code: Select all

JASC-PAL
0100
256
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
11 11 11
12 12 12
13 13 13
14 14 14
15 15 15
16 16 16
17 17 17
18 18 18
19 19 19
20 20 20
21 21 21
22 22 22
23 23 23
24 24 24
25 25 25
26 26 26
27 27 27
28 28 28
29 29 29
30 30 30
31 31 31
32 32 32
33 33 33
34 34 34
35 35 35
36 36 36
37 37 37
38 38 38
39 39 39
40 40 40
41 41 41
42 42 42
43 43 43
44 44 44
45 45 45
46 46 46
47 47 47
48 48 48
49 49 49
50 50 50
51 51 51
52 52 52
53 53 53
54 54 54
55 55 55
56 56 56
57 57 57
58 58 58
59 59 59
60 60 60
61 61 61
62 62 62
63 63 63
64 64 64
65 65 65
66 66 66
67 67 67
68 68 68
69 69 69
70 70 70
71 71 71
72 72 72
73 73 73
74 74 74
75 75 75
76 76 76
77 77 77
78 78 78
79 79 79
80 80 80
81 81 81
82 82 82
83 83 83
84 84 84
85 85 85
86 86 86
87 87 87
88 88 88
89 89 89
90 90 90
91 91 91
92 92 92
93 93 93
94 94 94
95 95 95
96 96 96
97 97 97
98 98 98
99 99 99
100 100 100
101 101 101
102 102 102
103 103 103
104 104 104
105 105 105
106 106 106
107 107 107
108 108 108
109 109 109
110 110 110
111 111 111
112 112 112
113 113 113
114 114 114
115 115 115
116 116 116
117 117 117
118 118 118
119 119 119
120 120 120
121 121 121
122 122 122
123 123 123
124 124 124
125 125 125
126 126 126
127 127 127
128 128 128
129 129 129
130 130 130
131 131 131
132 132 132
133 133 133
134 134 134
135 135 135
136 136 136
137 137 137
138 138 138
139 139 139
140 140 140
141 141 141
142 142 142
143 143 143
144 144 144
145 145 145
146 146 146
147 147 147
148 148 148
149 149 149
150 150 150
151 151 151
152 152 152
153 153 153
154 154 154
155 155 155
156 156 156
157 157 157
158 158 158
159 159 159
160 160 160
161 161 161
162 162 162
163 163 163
164 164 164
165 165 165
166 166 166
167 167 167
168 168 168
169 169 169
170 170 170
171 171 171
172 172 172
173 173 173
174 174 174
175 175 175
176 176 176
177 177 177
178 178 178
179 179 179
180 180 180
181 181 181
182 182 182
183 183 183
184 184 184
185 185 185
186 186 186
187 187 187
188 188 188
189 189 189
190 190 190
191 191 191
192 192 192
193 193 193
194 194 194
195 195 195
196 196 196
197 197 197
198 198 198
199 199 199
200 200 200
201 201 201
202 202 202
203 203 203
204 204 204
205 205 205
206 206 206
207 207 207
208 208 208
209 209 209
210 210 210
211 211 211
212 212 212
213 213 213
214 214 214
215 215 215
216 216 216
217 217 217
218 218 218
219 219 219
220 220 220
221 221 221
222 222 222
223 223 223
224 224 224
225 225 225
226 226 226
227 227 227
228 228 228
229 229 229
230 230 230
231 231 231
232 232 232
233 233 233
234 234 234
235 235 235
236 236 236
237 237 237
238 238 238
239 239 239
240 240 240
241 241 241
242 242 242
243 243 243
244 244 244
245 245 245
246 246 246
247 247 247
248 248 248
249 249 249
250 250 250
251 251 251
252 252 252
253 253 253
254 254 254
255 255 255
Update: As it turns out, XnView is capable of saving & loading palettes in PSP format (Image » Edit Palette...) and maintains the indexes.
wunderer
Posts: 5
Joined: Sat Feb 14, 2015 10:14 am

Re: convert olny bright gray to color

Post by wunderer »

thanks XnTriq for your solution,
so you also didn't find a simple UI solution in xnview

meanwhile, I found a tool myself, that can solve my intention a bit easier, but unfortunately not on my old iMac G5. I had to
switch to (sorry) windows (7). "imageJ" does it in a few steps:
1.) Image -> Color -> Split_Channels splits your (gray) image into 3 (r=g=b identical) channel-Images
2.) then for each channel-Image:
Process -> Math -> Macro... lets you manipulate the (given) pixel value "v" in a 1-line-UI, e.g.: if ((v>99) && (v<200)) v=v/2+155
(of course you will be using different formulas for each channel-Image :wink: )
3.) Image -> Color -> Merge_Channels... merges your 3 channel-Images into 1 (now colored) image.
actually, the Macros are recordable & store-able & pretty powerful, as they also can handle other variables like pixel-xyz, width, height,...

maybe, the xnview development team may think about a similar macro/formula UI, since it's pretty straight forward & pretty powerful.

cheers, wunderer
User avatar
XnTriq
Moderator & Librarian
Posts: 6336
Joined: Sun Sep 25, 2005 3:00 am
Location: Ref Desk

Re: convert olny bright gray to color

Post by XnTriq »

Thanks for reporting back, wunderer.
wunderer wrote:maybe, the xnview development team may think about a similar macro/formula UI, since it's pretty straight forward & pretty powerful.
There's only one single solitary developer: Pierre :mrgreen:

You have Filter » User filter... (in XnView for Windows as well as XnViewMP for Mac OS), but it's very basic:
wunderer
Posts: 5
Joined: Sat Feb 14, 2015 10:14 am

Re: convert olny bright gray to color

Post by wunderer »

okay, let me re-phrase:

I highly appreciate and admire people like pierre, and especially the free spirit, they are following and living.
being retired by now, I was considering myself to join the freeware /open source community, however, with my skills,
it didn't really work for me. so I joined a local radio station in munich instead: lora924.de (for those who understand german)

others than that, i posted my problem/solution as a development request, and of course I understand,
there may be much more important ones to resolve first. especially with this manpower situation.

cheers, wunderer.
User avatar
Drahken
Posts: 884
Joined: Sun Apr 10, 2005 4:29 pm

Re: convert olny bright gray to color

Post by Drahken »

Firstly, this can be done entirely within xnview, though the process can be tedious if you're changing a lot of colors. Take your greyscale image, then go image->convert to colors and set the # of colors to match the # of grayscale "colors". Now image->edit palette (or just ctrl+m). From here just double click the lightest whites/greys shown and set the to red or blue or whatever you're going for. The drawback is that you have to manually edit every color that you want to change.

Alternatively, from that same edit palette dialog you can export into a number of different formats. Windows palette is apparently binary & can't be editted with notepad. Most of the others are apparently plain text, but when I edit->save->load, I get a "not valid palette" error (including with the PSP format). However, the gimp format is truly plain text and can be editted->saved->loaded with no problems.
Oh the feuhrer, oh the feuhrer, oh the feuhrer's nipples bonk!
wunderer
Posts: 5
Joined: Sat Feb 14, 2015 10:14 am

Re: convert olny bright gray to color

Post by wunderer »

thanks Drahken,
you mainly pointed out the solution XnTriq suggested.
of course it's very tedious interactively pixel by pixel,
but with a little perl script I am able to also re-assign rgb-ranges.
now I can even do it entirely on my good old iMac.
(both, CF & Paintshop palette, worked fine for this )
thanks a lot, wunderer.
Post Reply