Amelioration de l'algo de découpe des images

This commit is contained in:
Coutume 2013-12-05 12:56:31 +01:00
parent 09608e5bf5
commit 111d4ebc0b
4 changed files with 28 additions and 13 deletions

View File

@ -1,10 +1,7 @@
package fr.moribus.ImageOnMap;
import java.io.File;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.map.MapView;
import org.bukkit.plugin.java.JavaPlugin;
public final class ImageOnMap extends JavaPlugin

View File

@ -22,13 +22,15 @@ public class ImageRenderer extends Thread
URL = u;
}
public BufferedImage[] getImg()
public Poster getImg()
{
if (estPrete)
return img.getPoster();
return img;
else
return null;
}
public Boolean getStatut()
{

View File

@ -1,17 +1,21 @@
package fr.moribus.ImageOnMap;
import java.awt.image.BufferedImage;
import java.util.HashMap;
/* Class which represents a picture cut into several parts */
public class Poster
{
BufferedImage src;
BufferedImage ImgDecoupe[];
HashMap<Integer, String> NumeroMap;
int nbPartie;
int nbColonne;
Poster(BufferedImage img)
{
src = img;
NumeroMap = new HashMap<Integer, String>();
DecoupeImg();
}
@ -20,6 +24,11 @@ public class Poster
return ImgDecoupe;
}
public int getNbColonne()
{
return nbColonne;
}
private void DecoupeImg()
{
int ligne, colonne;
@ -41,6 +50,7 @@ public class Poster
else
colonne = src.getHeight() / 128;
nbColonne = colonne;
nbPartie = ligne * colonne;
ImgDecoupe = new BufferedImage[nbPartie];
@ -54,14 +64,15 @@ public class Poster
if(col == colonne - 1 && resteY != 0)
{
ImgDecoupe[index] = src.getSubimage(x, y, resteX, resteY);
index++;
}
else
{
ImgDecoupe[index] = src.getSubimage(x, y, resteX, 128);
index++;
y += 128;
}
NumeroMap.put(index, "column "+ (lig + 1) +", row "+ (col + 1));
index++;
}
}
@ -72,14 +83,14 @@ public class Poster
if(col == colonne - 1 && resteY != 0)
{
ImgDecoupe[index] = src.getSubimage(x, y, 128, resteY);
index++;
}
else
{
ImgDecoupe[index] = src.getSubimage(x, y, 128, 128);
index++;
y += 128;
}
NumeroMap.put(index, "column "+ (lig +1) +", row "+ (col + 1));
index++;
}
x += 128;

View File

@ -5,6 +5,7 @@ import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.map.MapView;
import org.bukkit.scheduler.BukkitRunnable;
@ -14,6 +15,7 @@ public class TacheTraitementImg extends BukkitRunnable
Player joueur;
ImageRenderer renduImg;
PlayerInventory inv;
ItemStack map;
TacheTraitementImg(Player j, String u)
{
@ -35,17 +37,20 @@ public class TacheTraitementImg extends BukkitRunnable
}
else
{
System.out.println("ohlala ?");
cancel();
int nbImage = renduImg.getImg().length;
int nbImage = renduImg.getImg().getPoster().length;
MapView carte;
for (int i = 0; i < nbImage; i++)
{
carte = Bukkit.createMap(joueur.getWorld());
ImageRenderer.SupprRendu(carte);
carte.addRenderer(new Rendu(renduImg.getImg()[i]));
inv.addItem(new ItemStack(Material.MAP, 1, carte.getId()));
carte.addRenderer(new Rendu(renduImg.getImg().getPoster()[i]));
map = new ItemStack(Material.MAP, 1, carte.getId());
ItemMeta meta = map.getItemMeta();
meta.setDisplayName("Map (" +renduImg.getImg().NumeroMap.get(i) +")");
map.setItemMeta(meta);
inv.addItem(map);
}
joueur.sendMessage("Rendu de l'image fini");
}