1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-12 23:08:52 +01:00
Arduino/build/javadoc/everything/processing/core/PImage.html

1365 lines
56 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
PImage
</TITLE>
<META NAME="keywords" CONTENT="processing.core.PImage class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="PImage";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/core/PGraphicsJava2D.html" title="class in processing.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/core/PLine.html" title="class in processing.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?processing/core/PImage.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PImage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
processing.core</FONT>
<BR>
Class PImage</H2>
<PRE>
java.lang.Object
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>processing.core.PImage</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../processing/core/PConstants.html" title="interface in processing.core">PConstants</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../processing/video/Capture.html" title="class in processing.video">Capture</A>, <A HREF="../../processing/video/Movie.html" title="class in processing.video">Movie</A>, <A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>PImage</B><DT>extends java.lang.Object<DT>implements <A HREF="../../processing/core/PConstants.html" title="interface in processing.core">PConstants</A>, java.lang.Cloneable</DL>
</PRE>
<P>
Storage class for pixel data. This is the base class for most image and
pixel information, such as PGraphics and the video library classes.
<P>
Code for copying, resizing, scaling, and blending contributed
by <A HREF="http://www.toxi.co.uk">toxi</A>.
<P>
<P>
<P>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#format">format</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Format for this image, one of RGB, ARGB or ALPHA.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#height">height</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PApplet.html" title="class in processing.core">PApplet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#parent">parent</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Path to parent object that will be used with save().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#pixels">pixels</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#width">width</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_processing.core.PConstants"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface processing.core.<A HREF="../../processing/core/PConstants.html" title="interface in processing.core">PConstants</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PConstants.html#A">A</A>, <A HREF="../../processing/core/PConstants.html#AB">AB</A>, <A HREF="../../processing/core/PConstants.html#ADD">ADD</A>, <A HREF="../../processing/core/PConstants.html#AG">AG</A>, <A HREF="../../processing/core/PConstants.html#ALPHA">ALPHA</A>, <A HREF="../../processing/core/PConstants.html#ALPHA_MASK">ALPHA_MASK</A>, <A HREF="../../processing/core/PConstants.html#ALT">ALT</A>, <A HREF="../../processing/core/PConstants.html#AMBIENT">AMBIENT</A>, <A HREF="../../processing/core/PConstants.html#AR">AR</A>, <A HREF="../../processing/core/PConstants.html#ARC">ARC</A>, <A HREF="../../processing/core/PConstants.html#ARGB">ARGB</A>, <A HREF="../../processing/core/PConstants.html#ARROW">ARROW</A>, <A HREF="../../processing/core/PConstants.html#B">B</A>, <A HREF="../../processing/core/PConstants.html#BACKSPACE">BACKSPACE</A>, <A HREF="../../processing/core/PConstants.html#BASELINE">BASELINE</A>, <A HREF="../../processing/core/PConstants.html#BEEN_LIT">BEEN_LIT</A>, <A HREF="../../processing/core/PConstants.html#BEVEL">BEVEL</A>, <A HREF="../../processing/core/PConstants.html#BLEND">BLEND</A>, <A HREF="../../processing/core/PConstants.html#BLUE_MASK">BLUE_MASK</A>, <A HREF="../../processing/core/PConstants.html#BLUR">BLUR</A>, <A HREF="../../processing/core/PConstants.html#BOTTOM">BOTTOM</A>, <A HREF="../../processing/core/PConstants.html#BOX">BOX</A>, <A HREF="../../processing/core/PConstants.html#BURN">BURN</A>, <A HREF="../../processing/core/PConstants.html#CENTER">CENTER</A>, <A HREF="../../processing/core/PConstants.html#CENTER_DIAMETER">CENTER_DIAMETER</A>, <A HREF="../../processing/core/PConstants.html#CENTER_RADIUS">CENTER_RADIUS</A>, <A HREF="../../processing/core/PConstants.html#CHATTER">CHATTER</A>, <A HREF="../../processing/core/PConstants.html#CLOSE">CLOSE</A>, <A HREF="../../processing/core/PConstants.html#CMYK">CMYK</A>, <A HREF="../../processing/core/PConstants.html#CODED">CODED</A>, <A HREF="../../processing/core/PConstants.html#COMPLAINT">COMPLAINT</A>, <A HREF="../../processing/core/PConstants.html#CONTROL">CONTROL</A>, <A HREF="../../processing/core/PConstants.html#CORNER">CORNER</A>, <A HREF="../../processing/core/PConstants.html#CORNERS">CORNERS</A>, <A HREF="../../processing/core/PConstants.html#CROSS">CROSS</A>, <A HREF="../../processing/core/PConstants.html#CUSTOM">CUSTOM</A>, <A HREF="../../processing/core/PConstants.html#DA">DA</A>, <A HREF="../../processing/core/PConstants.html#DARKEST">DARKEST</A>, <A HREF="../../processing/core/PConstants.html#DB">DB</A>, <A HREF="../../processing/core/PConstants.html#DEG_TO_RAD">DEG_TO_RAD</A>, <A HREF="../../processing/core/PConstants.html#DELETE">DELETE</A>, <A HREF="../../processing/core/PConstants.html#DG">DG</A>, <A HREF="../../processing/core/PConstants.html#DIAMETER">DIAMETER</A>, <A HREF="../../processing/core/PConstants.html#DIFFERENCE">DIFFERENCE</A>, <A HREF="../../processing/core/PConstants.html#DILATE">DILATE</A>, <A HREF="../../processing/core/PConstants.html#DIRECTIONAL">DIRECTIONAL</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_ACCURATE_TEXTURES">DISABLE_ACCURATE_TEXTURES</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_DEPTH_SORT">DISABLE_DEPTH_SORT</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_DEPTH_TEST">DISABLE_DEPTH_TEST</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_OPENGL_2X_SMOOTH">DISABLE_OPENGL_2X_SMOOTH</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_OPENGL_ERROR_REPORT">DISABLE_OPENGL_ERROR_REPORT</A>, <A HREF="../../processing/core/PConstants.html#DODGE">DODGE</A>, <A HREF="../../processing/core/PConstants.html#DOWN">DOWN</A>, <A HREF="../../processing/core/PConstants.html#DR">DR</A>, <A HREF="../../processing/core/PConstants.html#DXF">DXF</A>, <A HREF="../../processing/core/PConstants.html#EB">EB</A>, <A HREF="../../processing/core/PConstants.html#EDGE">EDGE</A>, <A HREF="../../processing/core/PConstants.html#EG">EG</A>, <A HREF="../../processing/core/PConstants.html#ELLIPSE">ELLIPSE</A>, <A HREF="../../process
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/core/PImage.html#PImage()">PImage</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an empty image object, set its format to RGB.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/core/PImage.html#PImage(java.awt.Image)">PImage</A></B>(java.awt.Image&nbsp;img)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a new PImage from a java.awt.Image.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/core/PImage.html#PImage(int, int)">PImage</A></B>(int&nbsp;width,
int&nbsp;height)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new RGB (alpha ignored) image of a specific size.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/core/PImage.html#PImage(int, int, int)">PImage</A></B>(int&nbsp;width,
int&nbsp;height,
int&nbsp;format)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#blend(int, int, int, int, int, int, int, int, int)">blend</A></B>(int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh,
int&nbsp;mode)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blends one area of this image to another area.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#blend(processing.core.PImage, int, int, int, int, int, int, int, int, int)">blend</A></B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src,
int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh,
int&nbsp;mode)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies area of one image into another PImage object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#blendColor(int, int, int)">blendColor</A></B>(int&nbsp;c1,
int&nbsp;c2,
int&nbsp;mode)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blend two colors based on a particular mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#clone()">clone</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Duplicate an image, returns new PImage object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#copy(int, int, int, int, int, int, int, int)">copy</A></B>(int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy things from one area of this image
to another area in the same image.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#copy(processing.core.PImage, int, int, int, int, int, int, int, int)">copy</A></B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src,
int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies area of one image into another PImage object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#filter(int)">filter</A></B>(int&nbsp;kind)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to apply a variety of basic filters to this image.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#filter(int, float)">filter</A></B>(int&nbsp;kind,
float&nbsp;param)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to apply a variety of basic filters to this image.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#get()">get</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a copy of this PImage.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#get(int, int)">get</A></B>(int&nbsp;x,
int&nbsp;y)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an ARGB "color" type (a packed 32 bit int with the color.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#get(int, int, int, int)">get</A></B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;w,
int&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Grab a subsection of a PImage, and copy it into a fresh PImage.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#getCache(java.lang.Object)">getCache</A></B>(java.lang.Object&nbsp;parent)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get cache storage data for the specified renderer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.awt.Image</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#getImage()">getImage</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a BufferedImage from this PImage.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#init(int, int, int)">init</A></B>(int&nbsp;width,
int&nbsp;height,
int&nbsp;format)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to be used by subclasses of PImage to init later than
at the constructor, or re-init later when things changes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#isModified()">isModified</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#loadPixels()">loadPixels</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this when you want to mess with the pixels[] array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#mask(int[])">mask</A></B>(int[]&nbsp;alpha)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set alpha channel for an image.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#mask(processing.core.PImage)">mask</A></B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;alpha)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set alpha channel for an image using another image as the source.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#removeCache(java.lang.Object)">removeCache</A></B>(java.lang.Object&nbsp;parent)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove information associated with this renderer from the cache, if any.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#resize(int, int)">resize</A></B>(int&nbsp;wide,
int&nbsp;high)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resize this image to a new width and height.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#save(java.lang.String)">save</A></B>(java.lang.String&nbsp;path)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save this image to disk.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#set(int, int, int)">set</A></B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a single pixel to the specified color.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#set(int, int, processing.core.PImage)">set</A></B>(int&nbsp;x,
int&nbsp;y,
<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Efficient method of drawing an image's pixels directly to this surface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#setCache(java.lang.Object, java.lang.Object)">setCache</A></B>(java.lang.Object&nbsp;parent,
java.lang.Object&nbsp;storage)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Store data of some kind for a renderer that requires extra metadata of
some kind.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#setModified()">setModified</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#setModified(boolean)">setModified</A></B>(boolean&nbsp;m)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#updatePixels()">updatePixels</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this when finished messing with the pixels[] array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PImage.html#updatePixels(int, int, int, int)">updatePixels</A></B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;w,
int&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark the pixels in this region as needing an update.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="format"><!-- --></A><H3>
format</H3>
<PRE>
public int <B>format</B></PRE>
<DL>
<DD>Format for this image, one of RGB, ARGB or ALPHA.
note that RGB images still require 0xff in the high byte
because of how they'll be manipulated by other functions
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="pixels"><!-- --></A><H3>
pixels</H3>
<PRE>
public int[] <B>pixels</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="width"><!-- --></A><H3>
width</H3>
<PRE>
public int <B>width</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="height"><!-- --></A><H3>
height</H3>
<PRE>
public int <B>height</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="parent"><!-- --></A><H3>
parent</H3>
<PRE>
public <A HREF="../../processing/core/PApplet.html" title="class in processing.core">PApplet</A> <B>parent</B></PRE>
<DL>
<DD>Path to parent object that will be used with save().
This prevents users from needing savePath() to use PImage.save().
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="PImage()"><!-- --></A><H3>
PImage</H3>
<PRE>
public <B>PImage</B>()</PRE>
<DL>
<DD>Create an empty image object, set its format to RGB.
The pixel array is not allocated.
<P>
</DL>
<HR>
<A NAME="PImage(int, int)"><!-- --></A><H3>
PImage</H3>
<PRE>
public <B>PImage</B>(int&nbsp;width,
int&nbsp;height)</PRE>
<DL>
<DD>Create a new RGB (alpha ignored) image of a specific size.
All pixels are set to zero, meaning black, but since the
alpha is zero, it will be transparent.
<P>
</DL>
<HR>
<A NAME="PImage(int, int, int)"><!-- --></A><H3>
PImage</H3>
<PRE>
public <B>PImage</B>(int&nbsp;width,
int&nbsp;height,
int&nbsp;format)</PRE>
<DL>
</DL>
<HR>
<A NAME="PImage(java.awt.Image)"><!-- --></A><H3>
PImage</H3>
<PRE>
public <B>PImage</B>(java.awt.Image&nbsp;img)</PRE>
<DL>
<DD>Construct a new PImage from a java.awt.Image. This constructor assumes
that you've done the work of making sure a MediaTracker has been used
to fully download the data and that the img is valid.
<P>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="init(int, int, int)"><!-- --></A><H3>
init</H3>
<PRE>
public void <B>init</B>(int&nbsp;width,
int&nbsp;height,
int&nbsp;format)</PRE>
<DL>
<DD>Function to be used by subclasses of PImage to init later than
at the constructor, or re-init later when things changes.
Used by Capture and Movie classes (and perhaps others),
because the width/height will not be known when super() is called.
(Leave this public so that other libraries can do the same.)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getImage()"><!-- --></A><H3>
getImage</H3>
<PRE>
public java.awt.Image <B>getImage</B>()</PRE>
<DL>
<DD>Returns a BufferedImage from this PImage.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setCache(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
setCache</H3>
<PRE>
public void <B>setCache</B>(java.lang.Object&nbsp;parent,
java.lang.Object&nbsp;storage)</PRE>
<DL>
<DD>Store data of some kind for a renderer that requires extra metadata of
some kind. Usually this is a renderer-specific representation of the
image data, for instance a BufferedImage with tint() settings applied for
PGraphicsJava2D, or resized image data and OpenGL texture indices for
PGraphicsOpenGL.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCache(java.lang.Object)"><!-- --></A><H3>
getCache</H3>
<PRE>
public java.lang.Object <B>getCache</B>(java.lang.Object&nbsp;parent)</PRE>
<DL>
<DD>Get cache storage data for the specified renderer. Because each renderer
will cache data in different formats, it's necessary to store cache data
keyed by the renderer object. Otherwise, attempting to draw the same
image to both a PGraphicsJava2D and a PGraphicsOpenGL will cause errors.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - The PGraphics object (or any object, really) associated
<DT><B>Returns:</B><DD>data stored for the specified parent</DL>
</DD>
</DL>
<HR>
<A NAME="removeCache(java.lang.Object)"><!-- --></A><H3>
removeCache</H3>
<PRE>
public void <B>removeCache</B>(java.lang.Object&nbsp;parent)</PRE>
<DL>
<DD>Remove information associated with this renderer from the cache, if any.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - The PGraphics object whose cache data should be removed</DL>
</DD>
</DL>
<HR>
<A NAME="isModified()"><!-- --></A><H3>
isModified</H3>
<PRE>
public boolean <B>isModified</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setModified()"><!-- --></A><H3>
setModified</H3>
<PRE>
public void <B>setModified</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setModified(boolean)"><!-- --></A><H3>
setModified</H3>
<PRE>
public void <B>setModified</B>(boolean&nbsp;m)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="loadPixels()"><!-- --></A><H3>
loadPixels</H3>
<PRE>
public void <B>loadPixels</B>()</PRE>
<DL>
<DD>Call this when you want to mess with the pixels[] array.
<p/>
For subclasses where the pixels[] buffer isn't set by default,
this should copy all data into the pixels[] array
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="updatePixels()"><!-- --></A><H3>
updatePixels</H3>
<PRE>
public void <B>updatePixels</B>()</PRE>
<DL>
<DD>Call this when finished messing with the pixels[] array.
<p/>
Mark all pixels as needing update.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="updatePixels(int, int, int, int)"><!-- --></A><H3>
updatePixels</H3>
<PRE>
public void <B>updatePixels</B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;w,
int&nbsp;h)</PRE>
<DL>
<DD>Mark the pixels in this region as needing an update.
<P>
This is not currently used by any of the renderers, however the api
is structured this way in the hope of being able to use this to
speed things up in the future.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="clone()"><!-- --></A><H3>
clone</H3>
<PRE>
public java.lang.Object <B>clone</B>()
throws java.lang.CloneNotSupportedException</PRE>
<DL>
<DD>Duplicate an image, returns new PImage object.
The pixels[] array for the new object will be unique
and recopied from the source image. This is implemented as an
override of Object.clone(). We recommend using get() instead,
because it prevents you from needing to catch the
CloneNotSupportedException, and from doing a cast from the result.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>clone</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.lang.CloneNotSupportedException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="resize(int, int)"><!-- --></A><H3>
resize</H3>
<PRE>
public void <B>resize</B>(int&nbsp;wide,
int&nbsp;high)</PRE>
<DL>
<DD>Resize this image to a new width and height.
Use 0 for wide or high to make that dimension scale proportionally.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="get(int, int)"><!-- --></A><H3>
get</H3>
<PRE>
public int <B>get</B>(int&nbsp;x,
int&nbsp;y)</PRE>
<DL>
<DD>Returns an ARGB "color" type (a packed 32 bit int with the color.
If the coordinate is outside the image, zero is returned
(black, but completely transparent).
<P>
If the image is in RGB format (i.e. on a PVideo object),
the value will get its high bits set, just to avoid cases where
they haven't been set already.
<P>
If the image is in ALPHA format, this returns a white with its
alpha value set.
<P>
This function is included primarily for beginners. It is quite
slow because it has to check to see if the x, y that was provided
is inside the bounds, and then has to check to see what image
type it is. If you want things to be more efficient, access the
pixels[] array directly.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="get(int, int, int, int)"><!-- --></A><H3>
get</H3>
<PRE>
public <A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A> <B>get</B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;w,
int&nbsp;h)</PRE>
<DL>
<DD>Grab a subsection of a PImage, and copy it into a fresh PImage.
As of release 0149, no longer honors imageMode() for the coordinates.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="get()"><!-- --></A><H3>
get</H3>
<PRE>
public <A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A> <B>get</B>()</PRE>
<DL>
<DD>Returns a copy of this PImage. Equivalent to get(0, 0, width, height).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="set(int, int, int)"><!-- --></A><H3>
set</H3>
<PRE>
public void <B>set</B>(int&nbsp;x,
int&nbsp;y,
int&nbsp;c)</PRE>
<DL>
<DD>Set a single pixel to the specified color.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="set(int, int, processing.core.PImage)"><!-- --></A><H3>
set</H3>
<PRE>
public void <B>set</B>(int&nbsp;x,
int&nbsp;y,
<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src)</PRE>
<DL>
<DD>Efficient method of drawing an image's pixels directly to this surface.
No variations are employed, meaning that any scale, tint, or imageMode
settings will be ignored.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="mask(int[])"><!-- --></A><H3>
mask</H3>
<PRE>
public void <B>mask</B>(int[]&nbsp;alpha)</PRE>
<DL>
<DD>Set alpha channel for an image. Black colors in the source
image will make the destination image completely transparent,
and white will make things fully opaque. Gray values will
be in-between steps.
<P>
Strictly speaking the "blue" value from the source image is
used as the alpha color. For a fully grayscale image, this
is correct, but for a color image it's not 100% accurate.
For a more accurate conversion, first use filter(GRAY)
which will make the image into a "correct" grayscake by
performing a proper luminance-based conversion.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="mask(processing.core.PImage)"><!-- --></A><H3>
mask</H3>
<PRE>
public void <B>mask</B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;alpha)</PRE>
<DL>
<DD>Set alpha channel for an image using another image as the source.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="filter(int)"><!-- --></A><H3>
filter</H3>
<PRE>
public void <B>filter</B>(int&nbsp;kind)</PRE>
<DL>
<DD>Method to apply a variety of basic filters to this image.
<P>
<UL>
<LI>filter(BLUR) provides a basic blur.
<LI>filter(GRAY) converts the image to grayscale based on luminance.
<LI>filter(INVERT) will invert the color components in the image.
<LI>filter(OPAQUE) set all the high bits in the image to opaque
<LI>filter(THRESHOLD) converts the image to black and white.
<LI>filter(DILATE) grow white/light areas
<LI>filter(ERODE) shrink white/light areas
</UL>
Luminance conversion code contributed by
<A HREF="http://www.toxi.co.uk">toxi</A>
<P/>
Gaussian blur code contributed by
<A HREF="http://incubator.quasimondo.com">Mario Klingemann</A>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="filter(int, float)"><!-- --></A><H3>
filter</H3>
<PRE>
public void <B>filter</B>(int&nbsp;kind,
float&nbsp;param)</PRE>
<DL>
<DD>Method to apply a variety of basic filters to this image.
These filters all take a parameter.
<P>
<UL>
<LI>filter(BLUR, int radius) performs a gaussian blur of the
specified radius.
<LI>filter(POSTERIZE, int levels) will posterize the image to
between 2 and 255 levels.
<LI>filter(THRESHOLD, float center) allows you to set the
center point for the threshold. It takes a value from 0 to 1.0.
</UL>
Gaussian blur code contributed by
<A HREF="http://incubator.quasimondo.com">Mario Klingemann</A>
and later updated by toxi for better speed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="copy(int, int, int, int, int, int, int, int)"><!-- --></A><H3>
copy</H3>
<PRE>
public void <B>copy</B>(int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh)</PRE>
<DL>
<DD>Copy things from one area of this image
to another area in the same image.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="copy(processing.core.PImage, int, int, int, int, int, int, int, int)"><!-- --></A><H3>
copy</H3>
<PRE>
public void <B>copy</B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src,
int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh)</PRE>
<DL>
<DD>Copies area of one image into another PImage object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="blendColor(int, int, int)"><!-- --></A><H3>
blendColor</H3>
<PRE>
public static int <B>blendColor</B>(int&nbsp;c1,
int&nbsp;c2,
int&nbsp;mode)</PRE>
<DL>
<DD>Blend two colors based on a particular mode.
<UL>
<LI>REPLACE - destination colour equals colour of source pixel: C = A.
Sometimes called "Normal" or "Copy" in other software.
<LI>BLEND - linear interpolation of colours:
<TT>C = A*factor + B</TT>
<LI>ADD - additive blending with white clip:
<TT>C = min(A*factor + B, 255)</TT>.
Clipped to 0..255, Photoshop calls this "Linear Burn",
and Director calls it "Add Pin".
<LI>SUBTRACT - substractive blend with black clip:
<TT>C = max(B - A*factor, 0)</TT>.
Clipped to 0..255, Photoshop calls this "Linear Dodge",
and Director calls it "Subtract Pin".
<LI>DARKEST - only the darkest colour succeeds:
<TT>C = min(A*factor, B)</TT>.
Illustrator calls this "Darken".
<LI>LIGHTEST - only the lightest colour succeeds:
<TT>C = max(A*factor, B)</TT>.
Illustrator calls this "Lighten".
<LI>DIFFERENCE - subtract colors from underlying image.
<LI>EXCLUSION - similar to DIFFERENCE, but less extreme.
<LI>MULTIPLY - Multiply the colors, result will always be darker.
<LI>SCREEN - Opposite multiply, uses inverse values of the colors.
<LI>OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,
and screens light values.
<LI>HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.
<LI>SOFT_LIGHT - Mix of DARKEST and LIGHTEST.
Works like OVERLAY, but not as harsh.
<LI>DODGE - Lightens light tones and increases contrast, ignores darks.
Called "Color Dodge" in Illustrator and Photoshop.
<LI>BURN - Darker areas are applied, increasing contrast, ignores lights.
Called "Color Burn" in Illustrator and Photoshop.
</UL>
<P>A useful reference for blending modes and their algorithms can be
found in the <A HREF="http://www.w3.org/TR/SVG12/rendering.html">SVG</A>
specification.</P>
<P>It is important to note that Processing uses "fast" code, not
necessarily "correct" code. No biggie, most software does. A nitpicker
can find numerous "off by 1 division" problems in the blend code where
<TT>&gt;&gt;8</TT> or <TT>&gt;&gt;7</TT> is used when strictly speaking
<TT>/255.0</T> or <TT>/127.0</TT> should have been used.</P>
<P>For instance, exclusion (not intended for real-time use) reads
<TT>r1 + r2 - ((2 * r1 * r2) / 255)</TT> because <TT>255 == 1.0</TT>
not <TT>256 == 1.0</TT>. In other words, <TT>(255*255)>>8</TT> is not
the same as <TT>(255*255)/255</TT>. But for real-time use the shifts
are preferrable, and the difference is insignificant for applications
built with Processing.</P>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="blend(int, int, int, int, int, int, int, int, int)"><!-- --></A><H3>
blend</H3>
<PRE>
public void <B>blend</B>(int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh,
int&nbsp;mode)</PRE>
<DL>
<DD>Blends one area of this image to another area.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../processing/core/PImage.html#blendColor(int, int, int)"><CODE>blendColor(int,int,int)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="blend(processing.core.PImage, int, int, int, int, int, int, int, int, int)"><!-- --></A><H3>
blend</H3>
<PRE>
public void <B>blend</B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;src,
int&nbsp;sx,
int&nbsp;sy,
int&nbsp;sw,
int&nbsp;sh,
int&nbsp;dx,
int&nbsp;dy,
int&nbsp;dw,
int&nbsp;dh,
int&nbsp;mode)</PRE>
<DL>
<DD>Copies area of one image into another PImage object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../processing/core/PImage.html#blendColor(int, int, int)"><CODE>blendColor(int,int,int)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="save(java.lang.String)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(java.lang.String&nbsp;path)</PRE>
<DL>
<DD>Save this image to disk.
<p>
As of revision 0100, this function requires an absolute path,
in order to avoid confusion. To save inside the sketch folder,
use the function savePath() from PApplet, or use saveFrame() instead.
As of revision 0116, savePath() is not needed if this object has been
created (as recommended) via createImage() or createGraphics() or
one of its neighbors.
<p>
As of revision 0115, when using Java 1.4 and later, you can write
to several formats besides tga and tiff. If Java 1.4 is installed
and the extension used is supported (usually png, jpg, jpeg, bmp,
and tiff), then those methods will be used to write the image.
To get a list of the supported formats for writing, use: <BR>
<TT>println(javax.imageio.ImageIO.getReaderFormatNames())</TT>
<p>
To use the original built-in image writers, use .tga or .tif as the
extension, or don't include an extension. When no extension is used,
the extension .tif will be added to the file name.
<p>
The ImageIO API claims to support wbmp files, however they probably
require a black and white image. Basic testing produced a zero-length
file with no error.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/core/PGraphicsJava2D.html" title="class in processing.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/core/PLine.html" title="class in processing.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?processing/core/PImage.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PImage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>