Jump to content

Reptillian

Members
  • Posts

    1,239
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by Reptillian

  1. Solved the LAB editing issue on transfer color[reduced colors] I found out that the contrast effect goes over the range of [0,255] so, I had to apply cut 0,255 command. Now, it's ready for use though there's still a issue with preview, but however, that wouldn't affect productivity so much.
  2. In relations to my last few post, I have implemented triangle wave in cascading glitch filter which would be E option. However, I still want to wait on that as the original author isn't back on developing filter. I'll give it 2-3 months for E, and if she had not returned, I might have to put my own version on reptorian.gmic if i am not granted permission to edit joan_rake.gmic file. It turns out I still need to do work on reduced color filters, so I'll figure out something sooner or later, but it's not a filter I would prioritize on since pixel art isn't really my thing. I'm working on finally implementing modulo operations cli into a filter. The main thing I need to figure out is how to apply those operations per every two layers and by channels separately and then blend them.
  3. Since at the moment, I'm not really ready to update my gmic as I still want to do a few more filters before I upload to g'mic community, I decided to prematurely release the g'mic code for transfer color [reduced colors]. This code will be deleted once it gets to G'MIC of course like I did with the Vibrato code. 1. Type in %appdata%/gmic in Windows Explorer 2. Copy and paste this inside updatexxxx.gmic somewhere between the end of preview of a filter, and before #@gui, and then go to paint.net -> advanced -> g'mic QT, type in Reduced Colors and this should show up. #@gui Transfer Colors [Reduced Colors] : tcrc, tcrc_preview(0) #@gui : sep = separator(), note = note ("<b>Transfer Color Setting<b>") #@gui : note = note ("<i>If using all layers as input layer, the layer is the reference layer. If using active and above/below, the layer is the target layer.</i>") #@gui : Layer to Use as Reference/Target Image = choice(0,"Top Layer","Bottom Layer") #@gui : 1. Is reference image smaller than target image? = bool(0) #@gui : 2. Color Count = int(16,2,4096) #@gui : 3. Color Dithering (%) = float(50,0,100) #@gui : 4. Color Indexing Method = choice(1,"Median Cut","Median Cut and K-Means") #@gui : 5. Alpha Value Count = int (2,2,255) #@gui : 6. Alpha Dithering (%) = float(50,0,100) #@gui : 7. Alpha Indexing Method = choice(1,"Median","K-Means") #@gui : sep = separator(), note = note ("<b>Local Contrast<b>") #@gui : 7. Spatial Radius = float(80,2.5,200) #@gui : 8. Amount = float(0.5,0,5) #@gui : 9. Darkness Level = float(1,0,4) #@gui : 10. Lightness Level = float(1,0,4) #@gui : sep = separator(), note = note ("<b>RGB Adjustments<b>") #@gui : 11. Brightness (%) = float(0,-100,100) #@gui : 12. Contrast (%) = float(0,-100,100) #@gui : 13. Gamma (%) = float(0,-100,100) #@gui : 14. Hue Shift (%) = float(0,-180,180) #@gui : 15. Saturation (%) = float(0,-100,100) #@gui : sep = separator(), note = note ("<b>LAB Adjustments<b>") #@gui : 16. Lightness Brightness (%) = float(0,-100,100) #@gui : 17. Lightness Contrast (%) = float(0,-100,100) #@gui : 18. Red Chroma (%) = float(0,-100,100) #@gui : 19. Green Chroma (%) = float(0,-100,100) #@gui : 20. Blue Chroma (%) = float(0,-100,100) #@gui : 21. Yellow Chroma (%) = float(0,-100,100) #@gui : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse") #@gui : sep = separator(), note = note("<small>Author : <i>Reptorian</i> Latest update: <i>2019/1/31</i>.</small>") tcrc : if {$1==1} rv fi ac[^0] "tcrc_adjustment ${9-23}",rgb rv[0,{$!-1}] repeat {$!-1} l[{$!-1},$<] tcrc_colormapping[0,1] ${2-8} endl done rv[0,{$!-1}] if {$1==0} rv fi tcrc_colormapping : rv split_opacity[1] to_rgba[1] +colormap[0] {$1?$2+1:$2},$4,1 index[1] [3],{$3/100},1 l[2] skip {ia==255} if {ia!=255} autoindex $5,{$6/100},{$7} n 0,255 fi endl rm[3] to_rgb[1] a[1,2] c rv tcrc_adjustment : fx_LCE ${1-4},1 adjust_colors ${5-9},0,255 rgb2lab s c l[0] adjust_colors $10,$11 endl l[1] +adjust_colors 0,$12 blend lighten +adjust_colors 0,$13 blend darken endl l[2] +adjust_colors 0,$14 blend darken +adjust_colors 0,$15 blend lighten endl a c lab2rgb tcrc_preview : tcrc $* Reference Layer - http://amiga.lychesis.net/resolution/Lowres/Corruption_17_Casino.html Target Layer - https://www.pexels.com/photo/eiffel-tower-paris-1267533/ Result of Reference Layer to Target Layer
  4. Well, it seem like I decided to continue making new G'MIC filter as my main computer is overheating and I stepped out of doing filters for a while. I'm using my secondary computer. My options - A ) Finish Transfer [Reduced Colors] filter, this filter basically transfer colors from reference image to a target image using a palette of colors from the reference image, and the target result contains only the palette colors. From 2 colors to 4096 colors. It works well with PDN limitations, but I also have to make it work as I want it to work with 3+ layers the way I want to on GIMP and Krita as well, so that is why it is not on G'MIC yet. @nycos62 , does this benefit pixel artists? If it does, should I release this regardless of the bug? B ) Pixel-art scaling C ) Wood texture D) Improve my Construction filter, any suggestion welcome. I thought of laplacian normalization processing. And also I can add color processing using LAB channels and adding red,green,blue, yellow sliders. Are these the only thing that needs to be added? Is there a technique I can implement akin to Butterworth Bandpass processing? Should I add description? E) Implement Modulo Blending Modes to self-cascading glitch filter. Regular modulo already exist, so this would be about continuous regular modulo, divisive modulo, continuous divisive modulo, modulo addition, continuous modulo addition. F) Bubble filter Besides those long filters, I might update my modulos operation using modf and modo while being able to perform them on separate channels using a number or image for calculation.
  5. I tested colormap command with alpha, and it does indeed work. Do you want the alpha values and the color values to be separated. Duplicate layer If so, in code[local] split_opacity colormap [desired palette size],1,1 rv Remove rv for one of those layers and you'll get both of them separated. Mind you, there are 255 colors possible in alpha in PDN.
  6. Construction Material Texture filter is now at G'MIC. I know when I told you they're available, it means it's there, but it wasn't there as I forgotten a few GUI code, and I apologize for that. Added it, and the filter should show up under Testing -> Reptorian after you update using the spinning arrow button.

    1. lynxster4

      lynxster4

      Thank you, @Reptillian   Much appreciated!  :)

  7. There's CLUT transferring tool on G'MIC, and the command autoindex which will reduce the numbers of colors -autoindex count > 0 0<= dithering <= 1, method={ O=median-cut | 1=k-means } -autoindex 2048,1,1 and then use the G'MIC CLUT tools if you want to use those colors for changing pictures. If you're interested in just the colors, G'MIC has an colormap command. The picture above demonstrate that the image has been turned into a palette. 1024x1 indicates that there are only 1024 colors. In Paint.NET, you would need to resize the image width to 1024 manually if and only if the size of the palette is greater than the width of your image, and then apply this. Here's the output in PDN close-up
  8. News, the patches are merged into master. @lynxster4 - They're here now, so you could try refreshing your filters and see if the patches are applied.
  9. The place where people provide their filter codes is in G'MIC Community at Github. Once their pull requests are accepted, it is available at G'MIC upon refresh. RIght now, they're not at the official G'MIC, but however, you can get them early by copying the filters to and paste it within %appdata%/gmic/updatexxxx.gmic where xxxx is your version of g'mic. @G'MIC is probably taking a break, so you might have to copy and paste them into that file. Vibrato is already available upon G'MIC refresh, and so is advanced emboss/relief as well as OOBS. OOBS as of current G'MIC does not have blending modes yet, but this patch below has it. The Construction Material Texture is not available, so if you want that you'll have to copy and paste for now. Patches for updatexxxx.gmic
  10. News! Construction Material Texture is going to come to G'MIC in less than a week. So you can use it on Paint.NET soon when it arrives. Here's the work so far, all that's missing is the Butterworth Bandpass filtering code, and it'll be done. -
  11. Have just added blending modes options to the OOBS filter. Not doing any more work since it's not a really good filter, but it works. It's 5 existing PDN filters into 1. It will be here at some point before G'MIC v.2.5. By the the modo and modf has been done too. Those will replace mod_ops. The purpose are still the same, and they are to manipulate gradients or be used for glitch art. Almost done with the Concrete Texture filter for G'MIC Here's a sample. The relief filter section doesn't work on the concrete texture filter yet, so I had to manually apply relief filter. But, here is what it can look like.
  12. Actually, this would be a ok plugin if you're replicating this effect among many layers. But, at that point, I would be looking into batch processing.
  13. Just want to announce that the Vibrato filter has landed, and unlike the one in this forums, it works with multiple color spaces and it actually works with alpha channels, plus you can either edit all the channels at once or individually. Also, there is a OOBS(Channels Overblur-Overline-Blur-Sharpen) filter which is basically 3-4 different PDN plugin into one, and I could extend it by adding blending mode which is something I'll have to do when I get the time and will to do that. OOBS in essence is like overblur, overline, and maybeone of the filter @BoltBait has made all into one. I'm not sure on the last part. Made an advanced embossing/reliefing filter which again is inspired by the PDN filter. There is a new mods_ops commands (please don't make filters yet with it, I am going to add the option to use a secondary layer or a copied image for PDN users to be used as maximum value reference layer) which utilizes continuous and standard forms of modulo operations, as well as a inversion option. Refresh to see the filters. You can use the mods_ops via code [local] mod_ops : 0>=ops<=5,chan_v>0, 0>value(%)<=1,alpha_preserve>=0 ops = (0=Modulo Standard ; 1=Modulo Continuous ; 2 = Modulo Division Standard ; 3 = Modulo Division Continuous ; 4 = Modulo Addition Standard ; Modulo Addition Continuous) chan_v = Channel value - Use 255 for 8-bit operations, but set to 1 or 360 for other operations value = Uses the chan_v as a reference for modulo operations alpha_preserve = if yes, preserve alpha, else if no, the operation is performed on alpha channel @toe_head2001 I found out that the repository for the community filter is here - https://github.com/dtschump/gmic-community Basically, if you have any code you want to see in G'MIC. Add your_username.gmic and use the template, and then copy your g'mic code into there.
  14. Well, I was making a new cli command that does modulo operations for the g'mic plugin (which is available here), and I experimented. I think I got close to the OP needs. I forgot some of the steps though. But I"ll probably remember. All done with G'MIC. If I do remember the step, I'll definitely recreate what I did and turn it into a G'MIC filter. I think it is just solarization of channels and a little bit more manipulation for the most part. Solarization is available here. Also, saving this for later. This is just a reference for later use. rgb2lch8 mod_ops 3,255,{(128/2)/255},1 lch82rgb
  15. You will never have the same precision as vectors (not even close no matter the resolution), but you can use rectangle select and then blue arrow after you create your text.
  16. No. There's that plugin for text, but it's not the same level. And then, there's the default text tool. My question is that if we're talking about utilizing vectors or just simply manipulating a rasterized layer. If it about manipulating vectors, then one would have to redirect you to another software that actually supports text vector layers. If it about using a rasterized layer, well, you can create new layer, use the default text tool or that plugin, and then use rectangle select, then click blue arrow to do transform. Alignment probably isn't possible. If it vectors, then you would need to use another software like Krita, Adobe Photoshop/Illustrator/InDesign, Inkscape, Scribus, Affinity Photo/Designer, Inkscape... Cheapest and best option for text layer support is clearly Inkscape and Scribus.
  17. If that's the case, then you would definitely need CMYK. If I had the urge, I would write a G'MIC filter specifically for this task. G'MIC can import files to get around this issue of PDN can't filter multiple layers and lacks CMYK.
  18. Vector graphics is not in the scope of PDN anyway. Vectors could be used to support raster graphics development. Krita and Photoshop supports vector selections and layers, but only as raster graphics support. They also had the resources to do that. But, they're not always needed in raster graphics apps.
  19. If you're looking for a plugin that allows you to generate multiple types of textures. G'MIC is a thing. Personally, I'm actually planning to copy tutorials and making them into a G'MIC filter to automate those process.
  20. That is how they get that early 90s looks. Didn't really thought of that until this was shown.
  21. I got news for the Stylize filter, the main maintainer of the G'MIC processing library has managed to make the Stylize filter work 5 to 6 times faster. This could have implication on the processing speed of filters in the next version of G'MIC. G'MIC being slower on Windows is a known issue. Source - discuss.pixls.us/t/performance-issues-on-windows/10626/9 That is the creator of G'MIC on that thread.
  22. Discuss.pixls.us is where G'MIC discussion goes on. You can also submit filters there. I also have made a tutorial on this forum. It's kinda easy to make filters though painful at times.
  23. For some reason, I can't remove the tags on quote. Well ok. That being said, those things are meant for other programs that can use G'MIC.
  24. Update: Vibrato filters has been merged into one vibrato filter. You can manipulate multiple channels at once or edit them one-by-one. See note below the vibrato filter as there is a issue. However, a workaround exist though. A sample of modifying saturation and value channels at once with vibrato Next up - Replicating Alien Map from GIMP, but with support for multiple color space of course. After that, Channels OOBS (Overblur/Overline/Blur/Sharpen) with the same controls as Vibrato.
  25. Introduction As G'MIC is now available for PDN, there is now easily accessible alternative to C# for developing filters. What exactly would be the benefit of turning a PDN filter to a G'MIC filter? Well, here's some few benefits to some users of PDN and especially for those that use multiple applications that use G'MIC. G'MIC are accessible to the following program - Paint.NET, Krita, GIMP, Natron, Blender . This would mean that you could continue your project elsewhere while still having access to G'MIC filters. Better filter preservation. To explain this in a easier way, G'MIC by itself is likely going to be accessible for a long time to go, and many filters can also be preserved. Individual filters tend to have a big issue of being lost permanently requiring users to remake filters again or to restore it from a backup. Just look at the dead links due to the forum upgrade in some threads at plugins section of this forum to see what I mean. And if G'MIC sources disappear on the main website, there's likely going to be a person who do have the source code for it and instructions to compile G'MIC for respective softwares, and precompiled versions would also exist elsewhere. It's an alternative to C# with many syntaxs and option. You would have to read the 400 page documentation for example of G'MIC scripting, and look at G'MIC reference. It even support for loop. For some, this can be beneficial as it can be easier to learn for some users, and G'MIC has a big advantages of being able to make the GUI alongside with $x where x is the variable number being directly connected to the GUI. The downside is that for those who do not want people to have source code to their filter or want to allow others to modify their filter will have to use the standard #C instead and not even bother with this tutorial at all. You have to share your code to the world if you want your G'MIC filter to be accessible to others, no if and no but here unless maybe you're a developer of proprietary programs (I think the license changed to allow proprietary programs to do so, but I'm not sure, hence maybe.). That being said, those are the few reasons why you would want to turn a PDN filter to a G'MIC filter. Resources https://gmic.eu/reference.shtml - This link refers to everything or almost everything about G'MIC scripting with examples https://gmic.eu/gmic_reference.pdf - 458 pages of examples and some clarifications of scripting Tutorial This tutorial is going to be about transforming basic filter to a G'MIC filter. More advanced ones are possible, but that would require some good amount of understanding of G'MIC scripting, and its syntax. Spaces are critical here. For basic filter and possibly advanced ones (I'm not sure the extent this can be used with code[local], you can use code[local] filter to test your script first. This tutorial uses Code[Local] first. Note 1 - [x] are G'MIC layers Note 2 - $x are G'MIC variables connected - Part 1 : Preparation 1. Open Paint.NET/Krita/GIMP with G'MIC installed. Krita and GIMP supports multiple layer output, so you can see how your code works by clicking applies. The [0] is the currently selected, and [n] or [-1] are basically anything below the [0] layer. See debug info is crucial to diagnosing how your code will work within code[local] 2. Copy and Paste a image to be used for testing 3. Open G'MIC. G'MIC can be located by Effect > Advanced > G'MIC-QT 4. Go to Custom Code[Local] filter 5. Go to Part 2 - Part 2 : Making the over-blur script and testing it 1. Read about the PDN effect you are going to replicate [Yes, so you can make a theory on how to replicate the G'MIC filter in theory 2. For overblur, it seems that it uses a blur filter first, and generate the difference between the blur image and the original image. Overblur add the sum of the difference with the blur result multiplied by a variable and the original. Overblur (final_image) = Original + (Blur_Variable - Original) * V1 . That means your filter would need at least 2 tabs on its GUI. More on that later. 3. To create a layer within G'MIC with filter applied within code[local] -> Type in +{Effect}[layer_number] x...z where x...z are all numbers of variables you are going to use. See update24xx.gmic on the appdata folder to see effect. $1.....$inf are placement of each variables that are connected the GUI of the filter they're respective to most of the time. 4. Finally, type in blend[0,1] add to see the overblur effect within the preview. Debug info is crucial for PDN as you cannot output multiple layers in there. - Part 3 : Making the G'MIC code Note: The code needs more work, but this is more of a starter code. Completing it and describing it will just more efforts than I want to do. If you look at update24xx.gmic within Kate text editor, you'd note how the GUI works just by looking at the code of the filter and comparing it with the GUI windows. All notes, and separators are ignored. $x correspond with adjustable number variables. Everything must start with #@gui. All the other are just GUI development. Okay, now to make the filter for real. 1. Open Kate text editor (I'm not too sure on Notepad++ when copy and paste into .gmic found at appdata, haven't tried it.) 2. Copy and paste the code[local] code within Kate. 3. Convert number to variables. The first variable should be $1, and the second variable should $2. So, it should look like this in Kate text editor. You will copy and paste the final code that to updatexxx.gmic later on, but not now. +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add There, that means you should have at least 2 sliding tabs on the GUI. 4. Type in $@gui _ This should go into top of the code. 5. Now, type in #@gui {FilterName}: {Effect_Command_Name}, {Effect_Command_Name}_preview(0) where {Effect_Command_Name} is your chosen name for this effect. To clarify, here's a example of what I mean. #@gui Overblur: overblur, _overblur_preview(0) That should go on second half top of the code. Every other GUI part of the code here are below this. 6. You can add texts to it by typing #@gui : note = note ("") ; where anything between "" is your text that you want to leave info for users of your filter about. 7. You can add separator by adding #@gui : sep = separator() 8. We are going to use 2 float variable. So this means you should add 2 copies of #@gui : {Name of Variable} = float (default, min, max) below the above line referenced in this tutorial. 9. You can add preview by copy and pasting one of the preview type code. That should go into the second bottom line of the gui section. 10. If you want to credit yourself, copy and paste one the existing credit note and replace it with the correct name and date. 11. After you made your GUI. You can continue on the bottom portion of the code. The code so far should look like this. #@gui _ #@gui Overblur: overblur, _overblur_preview(0) #@gui : note = note("Overblur the image") #@gui : sep = separator() #@gui : Blur Factor = float(1,.1,10) #@gui : Multiply Factor = float (1,.1,10) #@gui : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse") #@gui : sep = separator(), note = note("<small>Author : <i>Reptorian</i> Created by: <i>2018/12/21</i>.</small>") +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add 12. Add overblur: above the +blur[0]$1 13. Add _overblur_preview: below -blend[0,1] add It should look like this on the bottom portion of the code: overblur: +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add _overblur_preview: 14. For ease, I'd just copy and paste this below preview: gui_split_preview "overblur ${1--2}", $-1 By this point, you are done with the code. It should look like this. #@gui _ #@gui Overblur: overblur, _overblur_preview(0) #@gui : note = note("Overblur the image") #@gui : sep = separator() #@gui : Blur Factor = float(1,.1,10) #@gui : Multiply Factor = float (1,.1,10) #@gui : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse") #@gui : sep = separator(), note = note("<small>Author : <i>Reptorian</i> Created by: <i>2018/12/21</i>.</small>") overblur: +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add _overblur_preview: gui_split_preview "overblur ${1--2}", $-1 Copy and paste anywhere below Testing within updatexxxx.gmic - Part 4 : See your work 1. Open Paint.NET 2. Load G'MIC-QT 3. Search Overblur 4. Click it. If all goes well, it seem that it should work. Now the basics should be learned.
×
×
  • Create New...