Jump to content

Slowly making something go transparent in PDN?


Recommended Posts

#region UICode
int Amount1=0;	//[0,100]Slider 1 Description
int Amount2=0;	//[0,100]Slider 2 Description
int Amount3=0;	//[0,100]Slider 3 Description
int runs=255;
int num = 5;
#endregion

void Render(Surface dst, Surface src, Rectangle rect)
{
   // Delete any of these lines you don't need
   Rectangle selection = this.EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt();
   long CenterX = (long)(((selection.Right - selection.Left) / 2)+selection.Left);
   long CenterY = (long)(((selection.Bottom - selection.Top) / 2)+selection.Top);
   ColorBgra PrimaryColor = (ColorBgra)EnvironmentParameters.PrimaryColor;
   ColorBgra SecondaryColor = (ColorBgra)EnvironmentParameters.SecondaryColor;
   int BrushWidth = (int)EnvironmentParameters.BrushWidth;

   ColorBgra CurrentPixel;
   for (int y = rect.Top; y < rect.Bottom; y++)
   {
       for (int x = rect.Left; x < rect.Right; x++)
       {
           CurrentPixel = src[x,y];
           // TODO: Add pixel processing code here
           // Access RGBA values this way, for example:
           // CurrentPixel.R = (byte)PrimaryColor.R;
           // CurrentPixel.G = (byte)PrimaryColor.G;
          if(CurrentPixel.R != 255 && CurrentPixel.G != 255 && CurrentPixel.B != 255 || CurrentPixel.A > 0){
           CurrentPixel.A = (byte)x;
           runs= runs - 1;
           dst[x,y] = CurrentPixel;
        }
       }
   }
}

I'm trying to write something to make the picture go slowly transparent, and i'm kinda of new to PDN Plugins :( So, could someone help me fix this? A picture is below:

jd53693760p

That, is what is happening ._.

Link to comment
Share on other sites

void Render(Surface dst, Surface src, Rectangle rect)
{
   double increment = 255.0 / (double) src.Width;

   for (int x = rect.Left; x < rect.Right; x++)
   {
       byte alpha = (byte) Math.Round(x * increment);

       for (int y = rect.Top; y < rect.Bottom; y++)
       {
           ColorBgra  CurrentPixel = src[x,y];
           CurrentPixel.A = alpha;
           dst[x,y] = CurrentPixel;
       }
   }
}

Edit: in codelab, rather than in pseudocode.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...