如果可以的话,图片库帮助

时间:2014-04-16 22:46:40

标签: image thumbnails processing

我创建了一个效果很好的图片库,唯一的问题是我不知道如何设置我的程序,所以当你打开它时,它会以缩略图的形式打开,如果你点击缩略图图像展开。

int maxImages; 
int imageIndex;

// Declaring an array of images.
PImage[] images;

void setup() {

  size(600,400);

  images = new PImage[maxImages];

  maxImages = 2;
  imageIndex = 0;     // Initial image to be displayed is the first

  for (int i = 0; i < images.length; i ++ ) {
    images[i] = loadImage( "changeling" + i + ".jpg" ); 
  }

}

void draw() {

  // Displaying one image
  image(images[imageIndex],0,0); 

}

1 个答案:

答案 0 :(得分:0)

这是一个想法,为了显示我正在设置它们的宽度和高度为100的图像,您可以使用任何值或您自己的算法来获得最佳尺寸。 知道每个图像占用的草图中的空间我可以知道鼠标单击事件发生时鼠标何时位于其中一个内部。然后我继续通过将尺寸加倍来扩展图像,直到它达到与屏幕尺寸相比较的良好尺寸。再次,您可以使用自己的值或算法来获得最佳的扩展比率。 一旦鼠标在图像展开时再次单击它再次返回缩略图。

希望这可能有用。

int maxImages; 
int imageIndex;
boolean imageExpand;

// Declaring an array of images.
PImage[] images; 

void setup() {

  size(600,400);

  maxImages = 2;
  imageIndex = 0; // Initial image to be displayed is the first
  boolean imageExpand;

  images = new PImage[maxImages];    
  imageExpand = false;

  for (int i = 0; i < images.length; i ++ ) {
    images[i] = loadImage( "changeling" + i + ".jpg" ); 
  }

}

void draw() {

  if(!imageExpand){
    showThumbnail();
  }

}

void mouseClicked(){

  if(!imageExpand){
    for(int i=0; i < images.length; i++){
      if((images[i].X > mouseX) && (images[i].X + images[i].width < mouseX)){
        if((images[i].Y > mouseY) && (images[i].Y + images[i].height < mouseY)){ 
          expandImage(images[i]);
          imageExpand = true;
        }
      }
    }
  }
  else{
    imageExpand = false;
    showThumbnail();
  }

}

void expandImage(PImage myImage){

  int largeWidth, largeHeight; 
  while((myImage.width * 2 < 600) && (myImage.height * 2 < 400)){
    largeWidth = myImage.width * 2;
    largeWidth = myImage.height * 2;
  }

  image(myImage, 0, 0, largeWidth, largeHeight);

}

void showThumbnail(){

  int posX = 0, posY = 0, lastImage = 0;
  for(int i=0; i < images.length; i++){
    if(posX + 100 < 600){
      image(images[i], posX, posY, 100, 100);
      posX = posX + 100;
    }
    else{
      posX = 0;
      posY = posY + 100;
      image(images[i], posX, posY, 100, 100);
    }
  }

}

问候何塞