-
Posts
1,236 -
Joined
-
Last visited
-
Days Won
18
Everything posted by Reptillian
-
Color Palettes go here
Reptillian replied to usedHONDA's topic in Paint.NET Discussion and Questions
I made updates to my collection of palettes. For those who haven't seen it before, there's 211 palettes here. Changes: 1) Remaining colors are completely-transparent. 2) More appropriate titles PDN Palettes.zip -
How to shrink image without losing pixels??
Reptillian replied to kamariden's topic in Paint.NET Discussion and Questions
The answer is that you're working with pixels. Edit: Old topic is old. Why did I bother? -
Hitomezashi Stitch - 1/9/2022
Reptillian replied to Reptillian's topic in Plugins - Publishing ONLY!
New update, I added border option. I will admit that my solution for this isn't really the best. But it'll do with the limitations I have. This is what I created: -
This plugin basically generates Hitomezashi Stitch. Code is based on the spreadsheet found in this place - https://aperiodical.com/2020/12/mobile-numbers-hitomezashi-stitching/ The plugin itself is very simple, and speaks for itself. No instruction or clarification needed other than it's under Texture. Download Link : Hitomezashi.zip Preview: Source Code: EDIT as of 1/8/2022 - Added Border Option EDIT as of 1/9/2022 - Optimization by adding "continue;".
-
In this code of mine, I am finding that the pattern disappear if pixel size changes, and it is dependent on the pixel size. I'm not sure why it happens: Other than that, it works fine though it could use a little polishing. // Name: // Submenu: // Author: // Title: // Version: // Desc: // Keywords: // URL: // Help: #region UICode IntSliderControl pixel_size = 1; // [1,100] Pixel Size ColorWheelControl color_a = ColorBgra.FromBgr(0, 0, 0); // [PrimaryColor] Color A ColorWheelControl color_b = ColorBgra.FromBgr(255, 255, 255); // [SecondaryColor] Color B ReseedButtonControl seed = 0; // Reseed #endregion // This single-threaded function is called after the UI changes and before the Render function is called // The purpose is to prepare anything you'll need in the Render function int length_w,length_h,enlarged_w,enlarged_h,old_pixel_size; bool initialized,rebuild; Random myRandomA,myRandomB; Random Init = new Random(); int new_seed; int[] vx; int[] vy; int[,] surface; void PreRender(Surface dst, Surface src) { if (!initialized){ length_w=(int)(Math.Ceiling((double)((src.Width-1)/pixel_size))); length_h=(int)(Math.Ceiling((double)((src.Width-1)/pixel_size))); myRandomA = new Random(Init.Next()); myRandomB = new Random(Init.Next()); vx = new int[length_w]; vy = new int[length_h]; surface = new int[length_w,length_h]; old_pixel_size=pixel_size; } if (old_pixel_size != pixel_size){ length_w=(int)(Math.Ceiling((double)((src.Width-1)/pixel_size))); length_h=(int)(Math.Ceiling((double)((src.Width-1)/pixel_size))); enlarged_w = length_w * pixel_size; enlarged_h = length_h * pixel_size; enlarged_w = ( enlarged_w - src.Width ); enlarged_h = ( enlarged_h - src.Height); myRandomA = new Random(Init.Next()); myRandomB = new Random(Init.Next()); vx = new int[length_w]; vy = new int[length_h]; surface = new int[length_w,length_h]; surface[0,0]=0; rebuild = true; old_pixel_size = pixel_size; } if (!initialized||rebuild||(new_seed != seed)){ myRandomA = new Random(Init.Next()); myRandomB = new Random(Init.Next()); for (int x = 0 ; x < length_w ; x++){ vx[x]=myRandomA.Next()%2; } for (int y = 0 ; y < length_h ; y++){ vy[y]=myRandomB.Next()%2; } for (int y = 1 ; y < length_h ; y++){ surface[0,y]=(surface[0,y-1]+vy[y-1])%2; } for(int y = 0 ; y < length_h ; y++){ for (int x = 1 ; x < length_w ; x++){ surface[x,y]=(vx[x-1]+surface[x-1,y]+y+2)%2; } } } new_seed=seed; initialized = true; rebuild = false; } // Here is the main multi-threaded render function // The dst canvas is broken up into rectangles and // your job is to write to each pixel of that rectangle void Render(Surface dst, Surface src, Rectangle rect) { int val; // Step through each row of the current rectangle for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; // Step through each pixel on the current row of the rectangle for (int x = rect.Left; x < rect.Right; x++) { val = surface[((x+enlarged_w)/pixel_size)%length_w,((y+enlarged_h)/pixel_size)%length_h]; if (val==1){dst[x,y] = color_a;} else{ dst[x,y] = color_b;} } } }
-
New developer new plugin (Ordered Dither)
Reptillian replied to loupasc's topic in Plugin Developer's Central
You can add that to the code. -
Is all hope lost? [Photo Editing Help]
Reptillian replied to HannahW's topic in Paint.NET Discussion and Questions
Here's my take: -
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
New Filter! Hitomezashi. It doesn't work too well on Paint.NET though. You're gonna have to import the saved file. The reason why is that there's no way to retrieve target image dimension on G'MIC GUI. -
Does the .net framework ref need updating?
Reptillian replied to Red ochre's topic in Troubleshooting & Bug Reports
Yes, it should be updated. I did that with few of my own plugin as .NET 5 as a temporary thing, and had to learn that the hard way. -
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
Here's another possible output. I think this would be great for textile stuff when I finish. Another picture for today, and that's it for today: -
is there anyway to save a png without flattening?
Reptillian replied to mafi13's topic in Paint.NET Discussion and Questions
I can't speak for @Rick Brewster, but in theory it should be possible to make a flattened copy automatically and use said copy to save as .png at the internal level. This is observed with other art software. Just Cntrl+Z after saving. Not convenient, yes, but it'll do. -
[Suggestion] Read access to all layers for effect plugins
Reptillian replied to midora's topic in Plugin Developer's Central
I second this request. I would be able to actually be able to create z-blend which basically use the z axis to determine the color of output image. And a few more obscure filters. -
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
Decided to hold off on that. Here's what I"m working on. -
Translation of OP: Paint.NET closes as soon as it open. ---- Uno, aqui escribe en ingles, no en español. Y dos, ese es un problema con la programa. Probablemente algo que se puede areglar. ¿Puede tu mandar un reporte? Translation: One, here we write in english, not in spanish. Two, that is a problem with the program. Likely, it can be fixed. Send your report.
-
This is essentially a upgraded version of the existing Paint.NET Emboss/Relief. Emboss/Relief+ has options such as changing radius, changing internal convolution kernel, and finally, having the option for each channel has their own convolution result rather than utilizing the average of convolution. The original code was based on this - https://www.mathworks.com/matlabcentral/fileexchange/9645-steerable-gaussian-filters Download Plugin -> EmbossReliefPlus.zip Output of Result: Source code CodeLab: G'MIC: Note: Don't bother editing radius limit into more than 50. I would advise you to go into the G'MIC Emboss/Relief if you need it since it's faster with higher value there.
-
A painfully slow code in CodeLab
Reptillian replied to Reptillian's topic in Plugin Developer's Central
Oh, I did not saw that! Thanks! Also, it seems the that convolution did not work as expected. Rotate either gives too high or low value. Oh well, I tried. -
Why is this so slow? The other time I did something like this, it was much faster. It's on PreRender that's the problem. Take out the code in Render, and it's still slow.
-
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
@BDP G'MIC 3 is out, so you can test these filter. ----- I'm working on my own Pollock generator. -
See here - https://discuss.pixls.us/t/release-of-gmic-3-0/17226/516 That's where I got the release number.
-
Thank @G'MIC . He's the one that released G'MIC 3.0.0, and he is the developer of G'MIC.
-
G'MIC 3 has been released.
-
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
Ok, some new changes to G'MIC 3.0 update when it's out. 1. Faster and more flexible Emboss-Relief. 2. Construction Material Texture gets a slight update due to changes on Emboss-Relief. -
Reptorian's G'MIC Code Workshop
Reptillian replied to Reptillian's topic in Plugin Developer's Central
@lifeday Since you asked me to enable color for Emboss/Relief filter. Now that I gotten back to improving this filter, I have been able to figure it out. The changes will be available in G'MIC 3.0 which is on work. I'll notify you when I push the changes. -
Three-Coupled Oscillators [SOLVED]
Reptillian replied to Reptillian's topic in Plugin Developer's Central
The last statement is how this plugin works, so I'm not sure what you mean. Also, finished code is at the plugin section.