yangfanconan 发表于 2013-5-14 20:01:55

Processing之旅-----【14课,关于图片用法的两三说】

我们上课,今天我将一种很常用的方法。就是图片。
//这节课,我们来讲述,关于PImage的用法。
//主要包括,创建图片,读取图片,显示图片。
//至于一些图像处理的方法将会慢慢讲到。
//
//
//
//
//
//
PImage myimage;//声明一个图形对象
int x;
void setup()
{
        size(512, 512,P2D);
        x=0;
        //myimage=createImage(2048,512,ARGB); 也可以这么创建
        myimage=createYourImage();//接受返回的对象

}
PImage createYourImage()//画画函数
{

        PGraphics buffer = createGraphics(2048, 512, P2D);//声明了一个这么大的缓冲
       buffer.beginDraw();//开始作画
       for (int i = 0; i<2048; i++)//这个函数非常简单就是画2048条彩色的直线
       {
       
                buffer.stroke((int)random(0, 255),(int)random(0, 255) ,(int)random(0, 255) );
                buffer.line(i, 0, i, 512);
                println("i: "+i);
              
       }
       buffer.endDraw();//结束绘画
       return buffer.get();
}
void draw()
{
   
   if (x>-2048)
   {
             println("x: "+x);
             image(myimage,x--, 0);//向左移动整个图像
   }               
}
{:soso_e101:} 知道世界上最廉价的劳动力是什么吗?是大学生……这段时间,接到了一个美国加州的一个同学的求作业的要求。本来麽,这种东西低于2000是没人做的。但是这同学说他就400百。我看就是一个打地鼠,做就做了。结果做完之后被告知不需要了,另外一个研究生给他发了一个打地鼠,价格350元。人民币啊……世界上还有比大学生更廉价的劳动力吗?
所以技不如人不废话,埋头苦读争口气。
今天400你不要,明年4w我不做。

应为效果是动态的。所以截图效果不明显,希望同学们自己运行一下。
好了,我们下课!{:soso__13766225770624999893_6:}

弘毅 发表于 2013-5-14 21:30:27

{:soso_e103:}350块~~~果真便宜

LINK~ 发表于 2014-10-31 10:56:09

又出现错误了
java.lang.RuntimeException: java.lang.RuntimeException: Framebuffer objects are not supported by this hardware (or driver) Read http://wiki.processing.org/w/OpenGL_Issues for help.
        at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206)
        at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
        at javax.media.opengl.Threading.invoke(Threading.java:191)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
        at processing.opengl.PJOGL.requestDraw(PJOGL.java:688)
        at processing.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1651)
        at processing.core.PApplet.run(PApplet.java:2256)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Framebuffer objects are not supported by this hardware (or driver) Read http://wiki.processing.org/w/OpenGL_Issues for help.
        at processing.opengl.PJOGL$PGLListener.init(PJOGL.java:876)
        at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:617)
        at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:639)
        at javax.media.opengl.awt.GLCanvas$9.run(GLCanvas.java:1272)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1117)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
        at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

LINK~ 发表于 2014-10-31 11:02:41

修改了下可以运行了
//这节课,我们来讲述,关于PImage的用法。
//主要包括,创建图片,读取图片,显示图片。
//至于一些图像处理的方法将会慢慢讲到。
//
//
//
//
//
//
PImage myimage;//声明一个图形对象
int x;
void setup()
{
      size(512, 512);
      x=0;
      //myimage=createImage(2048,512,ARGB); 也可以这么创建
      myimage=createYourImage();//接受返回的对象

}
PImage createYourImage()//画画函数
{

      PGraphics buffer = createGraphics(2048, 512);//声明了一个这么大的缓冲
         buffer.beginDraw();//开始作画
         for (int i = 0; i<2048; i++)//这个函数非常简单就是画2048条彩色的直线
         {

                buffer.stroke((int)random(0, 255),(int)random(0, 255) ,(int)random(0, 255) );
                buffer.line(i, 0, i, 512);
                println("i: "+i);

         }
         buffer.endDraw();//结束绘画
         return buffer.get();
}
void draw()
{

   if (x>-2048)
   {
             println("x: "+x);
             image(myimage,x--, 0);//向左移动整个图像
   }               
}
页: [1]
查看完整版本: Processing之旅-----【14课,关于图片用法的两三说】