极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14962|回复: 3

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

[复制链接]
发表于 2013-5-14 20:01:55 | 显示全部楼层 |阅读模式
我们上课,今天我将一种很常用的方法。就是图片。
  1. //这节课,我们来讲述,关于PImage的用法。
  2. //主要包括,创建图片,读取图片,显示图片。
  3. //至于一些图像处理的方法将会慢慢讲到。
  4. //
  5. //
  6. //
  7. //
  8. //
  9. //
  10. PImage myimage;//声明一个图形对象
  11. int x;
  12. void setup()
  13. {
  14.         size(512, 512,P2D);
  15.         x=0;
  16.         //myimage=createImage(2048,512,ARGB); 也可以这么创建
  17.         myimage=createYourImage();//接受返回的对象

  18. }
  19. PImage createYourImage()//画画函数
  20. {

  21.         PGraphics buffer = createGraphics(2048, 512, P2D);//声明了一个这么大的缓冲
  22.          buffer.beginDraw();//开始作画
  23.          for (int i = 0; i<2048; i++)//这个函数非常简单就是画2048条彩色的直线
  24.          {
  25.        
  26.                 buffer.stroke((int)random(0, 255),(int)random(0, 255) ,(int)random(0, 255) );
  27.                 buffer.line(i, 0, i, 512);
  28.                 println("i: "+i);
  29.                 
  30.          }
  31.          buffer.endDraw();//结束绘画
  32.          return buffer.get();
  33. }
  34. void draw()
  35. {
  36.    
  37.    if (x>-2048)
  38.    {
  39.              println("x: "+x);
  40.              image(myimage,x--, 0);//向左移动整个图像
  41.    }               
  42. }
复制代码

{:soso_e101:} 知道世界上最廉价的劳动力是什么吗?是大学生……这段时间,接到了一个美国加州的一个同学的求作业的要求。本来麽,这种东西低于2000是没人做的。但是这同学说他就400百。我看就是一个打地鼠,做就做了。结果做完之后被告知不需要了,另外一个研究生给他发了一个打地鼠,价格350元。人民币啊……世界上还有比大学生更廉价的劳动力吗?
所以技不如人不废话,埋头苦读争口气。
今天400你不要,明年4w我不做。


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-5-14 21:30:27 | 显示全部楼层
{:soso_e103:}350块~~~果真便宜
回复 支持 反对

使用道具 举报

发表于 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)
回复 支持 反对

使用道具 举报

发表于 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);//向左移动整个图像
   }               
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-23 21:33 , Processed in 0.045005 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表