当前位置: 首页>>代码示例>>Java>>正文


Java ImageToAwt.convert方法代码示例

本文整理汇总了Java中jme3tools.converters.ImageToAwt.convert方法的典型用法代码示例。如果您正苦于以下问题:Java ImageToAwt.convert方法的具体用法?Java ImageToAwt.convert怎么用?Java ImageToAwt.convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jme3tools.converters.ImageToAwt的用法示例。


在下文中一共展示了ImageToAwt.convert方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readJMETexture

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
@FXThread
private @NotNull Image readJMETexture(final int width, final int height, @NotNull final String externalForm,
                                      @NotNull final Path cacheFile) {

    final Editor editor = Editor.getInstance();
    final AssetManager assetManager = editor.getAssetManager();
    final Texture texture = assetManager.loadTexture(externalForm);

    final BufferedImage textureImage;
    try {
        textureImage = ImageToAwt.convert(texture.getImage(), false, true, 0);
    } catch (final UnsupportedOperationException e) {
        EditorUtil.handleException(LOGGER, this, e);
        return Icons.IMAGE_512;
    }

    final int imageWidth = textureImage.getWidth();
    final int imageHeight = textureImage.getHeight();

    return scaleAndWrite(width, height, cacheFile, textureImage, imageWidth, imageHeight);
}
 
开发者ID:JavaSaBr,项目名称:jmonkeybuilder,代码行数:22,代码来源:JavaFXImageManager.java

示例2: saveIfNeedTexture

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * Save if need a texture.
 *
 * @param texture the texture.
 */
private static void saveIfNeedTexture(@NotNull final Texture texture) {

    final Image image = texture.getImage();
    if (!image.isChanged()) return;

    final AssetKey key = texture.getKey();
    final Path file = notNull(getRealFile(key.getName()));
    final BufferedImage bufferedImage = ImageToAwt.convert(image, false, true, 0);

    try (final OutputStream out = Files.newOutputStream(file, WRITE, TRUNCATE_EXISTING, CREATE)) {
        ImageIO.write(bufferedImage, "png", out);
    } catch (final IOException e) {
        e.printStackTrace();
    }

    image.clearChanges();
}
 
开发者ID:JavaSaBr,项目名称:jmonkeybuilder,代码行数:23,代码来源:MaterialUtils.java

示例3: scale

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
@Override
public void scale(int width, int height) {
       if (width < 0 && height < 0) {
           return;
       } else if (width < 0) {
           width = Math.round(width
                   * (height == 0 ? 1 : ((float) height / height)));
       } else if (height < 0) {
           height = Math.round(height
                   * (width == 0 ? 1 : ((float) width / width)));
       }
       BufferedImage bim = ImageToAwt.convert(image, false, true, 0);
       System.err.println("scaling image from " + image.getWidth() + " x " + image.getHeight() + " to " + width + " x " + height);
       BufferedImage tbim = new BufferedImage(width, height, bim.getType());
       tbim.getGraphics().drawImage(bim, 0, 0, width, height, null);
       image = new AWTLoader().load(tbim, false);
   }
 
开发者ID:rockfireredmoon,项目名称:icetone,代码行数:18,代码来源:XHTMLFSImage.java

示例4: scale

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * This method scales the given texture to the given size.
 * 
 * @param texture
 *            the texture to be scaled
 * @param width
 *            new width of the texture
 * @param height
 *            new height of the texture
 */
private void scale(Texture2D texture, int width, int height) {
    // first determine if scaling is required
    boolean scaleRequired = texture.getImage().getWidth() != width || texture.getImage().getHeight() != height;

    if (scaleRequired) {
        Image image = texture.getImage();
        BufferedImage sourceImage = ImageToAwt.convert(image, false, true, 0);

        int sourceWidth = sourceImage.getWidth();
        int sourceHeight = sourceImage.getHeight();

        BufferedImage targetImage = new BufferedImage(width, height, sourceImage.getType());

        Graphics2D g = targetImage.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(sourceImage, 0, 0, width, height, 0, 0, sourceWidth, sourceHeight, null);
        g.dispose();

        Image output = new ImageLoader().load(targetImage, false);
        image.setWidth(width);
        image.setHeight(height);
        image.setData(output.getData(0));
        image.setFormat(output.getFormat());
    }
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:36,代码来源:CombinedTexture.java

示例5: convertToNormalMapTexture

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * This method converts the given texture into normal-map texture.
 * 
 * @param source
 *            the source texture
 * @param strengthFactor
 *            the normal strength factor
 * @return normal-map texture
 */
public Image convertToNormalMapTexture(Image source, float strengthFactor) {
    BufferedImage sourceImage = ImageToAwt.convert(source, false, false, 0);

    BufferedImage heightMap = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
    BufferedImage bumpMap = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
    ColorConvertOp gscale = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    gscale.filter(sourceImage, heightMap);

    Vector3f S = new Vector3f();
    Vector3f T = new Vector3f();
    Vector3f N = new Vector3f();

    for (int x = 0; x < bumpMap.getWidth(); ++x) {
        for (int y = 0; y < bumpMap.getHeight(); ++y) {
            // generating bump pixel
            S.x = 1;
            S.y = 0;
            S.z = strengthFactor * this.getHeight(heightMap, x + 1, y) - strengthFactor * this.getHeight(heightMap, x - 1, y);
            T.x = 0;
            T.y = 1;
            T.z = strengthFactor * this.getHeight(heightMap, x, y + 1) - strengthFactor * this.getHeight(heightMap, x, y - 1);

            float den = (float) Math.sqrt(S.z * S.z + T.z * T.z + 1);
            N.x = -S.z;
            N.y = -T.z;
            N.z = 1;
            N.divideLocal(den);

            // setting thge pixel in the result image
            bumpMap.setRGB(x, y, this.vectorToColor(N.x, N.y, N.z));
        }
    }
    ByteBuffer byteBuffer = BufferUtils.createByteBuffer(source.getWidth() * source.getHeight() * 3);
    ImageToAwt.convert(bumpMap, Format.RGB8, byteBuffer);
    return new Image(Format.RGB8, source.getWidth(), source.getHeight(), byteBuffer);
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:46,代码来源:TextureHelper.java

示例6: castToUVS

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * This method alters the images to fit them into UV coordinates of the
 * given target texture.
 * 
 * @param targetTexture
 *            the texture to whose UV coordinates we fit current images
 * @param blenderContext
 *            the blender context
 */
public void castToUVS(TriangulatedTexture targetTexture, BlenderContext blenderContext) {
    int[] sourceSize = new int[2], targetSize = new int[2];
    ImageLoader imageLoader = new ImageLoader();
    TextureHelper textureHelper = blenderContext.getHelper(TextureHelper.class);
    for (TriangleTextureElement entry : faceTextures) {
        TriangleTextureElement targetFaceTextureElement = targetTexture.getFaceTextureElement(entry.faceIndex);
        Vector2f[] dest = targetFaceTextureElement.uv;

        // get the sizes of the source and target images
        sourceSize[0] = entry.image.getWidth();
        sourceSize[1] = entry.image.getHeight();
        targetSize[0] = targetFaceTextureElement.image.getWidth();
        targetSize[1] = targetFaceTextureElement.image.getHeight();

        // create triangle transformation
        AffineTransform affineTransform = textureHelper.createAffineTransform(entry.uv, dest, sourceSize, targetSize);

        // compute the result texture
        BufferedImage sourceImage = ImageToAwt.convert(entry.image, false, true, 0);

        BufferedImage targetImage = new BufferedImage(targetSize[0], targetSize[1], sourceImage.getType());
        Graphics2D g = targetImage.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(sourceImage, affineTransform, null);
        g.dispose();

        Image output = imageLoader.load(targetImage, false);
        entry.image = output;
        entry.uv[0].set(dest[0]);
        entry.uv[1].set(dest[1]);
        entry.uv[2].set(dest[2]);
    }
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:43,代码来源:TriangulatedTexture.java

示例7: doSaveAlphaImages

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * Save the terrain's alpha maps to disk, in the Textures/terrain-alpha/ directory
 * @throws IOException
 */
private synchronized void doSaveAlphaImages(Terrain terrain) {

    if (terrain == null) {
        getTerrain(rootNode);
        return;
    }
    
    AssetManager manager = SceneApplication.getApplication().getAssetManager();
    String assetFolder = null;
    if (manager != null && manager instanceof ProjectAssetManager)
        assetFolder = ((ProjectAssetManager)manager).getAssetFolderName();
    if (assetFolder == null)
        throw new IllegalStateException("AssetManager was not a ProjectAssetManager. Could not locate image save directories.");

    Texture alpha1 = doGetAlphaTexture(terrain, 0);
    BufferedImage bi1 = ImageToAwt.convert(alpha1.getImage(), false, true, 0);
    File imageFile1 = new File(assetFolder+alpha1.getKey().getName());
    Texture alpha2 = doGetAlphaTexture(terrain, 1);
    BufferedImage bi2 = ImageToAwt.convert(alpha2.getImage(), false, true, 0);
    File imageFile2 = new File(assetFolder+alpha2.getKey().getName());
    Texture alpha3 = doGetAlphaTexture(terrain, 2);
    BufferedImage bi3 = ImageToAwt.convert(alpha3.getImage(), false, true, 0);
    File imageFile3 = new File(assetFolder+alpha3.getKey().getName());
    try {
        ImageIO.write(bi1, "png", imageFile1);
        ImageIO.write(bi2, "png", imageFile2);
        ImageIO.write(bi3, "png", imageFile3);
    } catch (IOException ex) {
        Exceptions.printStackTrace(ex);
    }
    
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:37,代码来源:TerrainEditorController.java

示例8: checkPackedTextureProps

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
/**
 * Prompts user to save packed textures
 *
 * @param mat
 * @param param
 */
private void checkPackedTextureProps(Material mat) {
    Collection<MatParam> params = mat.getParams();
    for (Iterator<MatParam> it = new ArrayList<MatParam>(params).iterator(); it.hasNext();) {
        MatParam param = it.next();
        MaterialProperty prop = new MaterialProperty(param);
        if (prop.getValue() == null) {
            switch (param.getVarType()) {
                case Texture2D:
                case Texture3D:
                case TextureArray:
                case TextureBuffer:
                case TextureCubeMap:
                    try {
                        MatParamTexture texParam = mat.getTextureParam(param.getName());
                        Texture tex = texParam.getTextureValue();
                        Image img = tex.getImage();
                        if (img == null) {
                            logger.log(Level.INFO, "No image found");
                            return;
                        }
                        BufferedImage image = ImageToAwt.convert(img, false, false, 0);
                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        ImageWriter imgWrtr = ImageIO.getImageWritersByFormatName("png").next();
                        ImageOutputStream imgOutStrm;
                        imgOutStrm = ImageIO.createImageOutputStream(out);
                        imgWrtr.setOutput(imgOutStrm);
                        ImageWriteParam jpgWrtPrm = imgWrtr.getDefaultWriteParam();
                        imgWrtr.write(null, new IIOImage(image, null, null), jpgWrtPrm);
                        imgOutStrm.close();
                        out.close();
                        String texturePath = material.getName();
                        texturePath = "Textures/" + texturePath + "-" + param.getName() + ".png";
                        StoreTextureWizardWizardAction act = new StoreTextureWizardWizardAction(manager, out.toByteArray(), texturePath);
                        act.actionPerformed(null);
                        texturePath = act.getName();
                        TextureKey texKey = new TextureKey(texturePath);
                        TextureKey oldKey = (TextureKey)tex.getKey();
                        if(oldKey!=null){
                            Beans.copyProperties(texKey, oldKey);
                        }
                        //TODO: seems like flip is removed due to ImageToAwt
                        texKey.setFlipY(false);
                        Texture texture = manager.loadTexture(texKey);
                        MatParamTexture newParam = new MatParamTexture(texParam.getVarType(), texParam.getName(), texture, null);
                        materialParameters.put(newParam.getName(), new MaterialProperty(newParam));
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    break;
                default:
            }
        } else {
            materialParameters.put(param.getName(), prop);
        }
    }
}
 
开发者ID:jMonkeyEngine,项目名称:sdk,代码行数:63,代码来源:EditableMaterialFile.java

示例9: doCreateTerrain

import jme3tools.converters.ImageToAwt; //导入方法依赖的package包/类
protected Spatial doCreateTerrain(Node parent,
                                   int totalSize,
                                   int patchSize,
                                   int alphaTextureSize,
                                   float[] heightmapData,
                                   String sceneName,
                                   org.openide.nodes.Node selectedNode) throws IOException
   {
       final ProjectAssetManager manager = selectedNode.getLookup().lookup(ProjectAssetManager.class);
       
       Terrain terrain = new TerrainQuad("terrain-"+sceneName, patchSize, totalSize, heightmapData); //TODO make this pluggable for different Terrain implementations
       com.jme3.material.Material mat = new com.jme3.material.Material(manager, "Common/MatDefs/Terrain/TerrainLighting.j3md");

       String assetFolder = "";
       if (manager != null && manager instanceof ProjectAssetManager)
           assetFolder = ((ProjectAssetManager)manager).getAssetFolderName();

       // write out 3 alpha blend images
       for (int i=0; i<TerrainEditorController.NUM_ALPHA_TEXTURES; i++) {
           BufferedImage alphaBlend = new BufferedImage(alphaTextureSize, alphaTextureSize, BufferedImage.TYPE_INT_ARGB);
           if (i == 0) {
               // the first alpha level should be opaque so we see the first texture over the whole terrain
               for (int h=0; h<alphaTextureSize; h++)
                   for (int w=0; w<alphaTextureSize; w++)
                       alphaBlend.setRGB(w, h, 0x00FF0000);//argb
           }
           File alphaFolder = new File(assetFolder+"/Textures/terrain-alpha/");
           if (!alphaFolder.exists())
               alphaFolder.mkdir();
           String alphaBlendFileName = "/Textures/terrain-alpha/"+sceneName+"-"+((Node)terrain).getName()+"-alphablend"+i+".png";
           File alphaImageFile = new File(assetFolder+alphaBlendFileName);
           ImageIO.write(alphaBlend, "png", alphaImageFile);
           Texture tex = manager.loadAsset(new TextureKey(alphaBlendFileName, false));
           if (i == 0)
               mat.setTexture("AlphaMap", tex);
           else if (i == 1)
               mat.setTexture("AlphaMap_1", tex);
           else if (i == 2)
               mat.setTexture("AlphaMap_2", tex);
       }
       
       Texture defaultTexture = manager.loadTexture(TerrainEditorController.DEFAULT_TERRAIN_TEXTURE);
       
       // copy the default texture to the assets folder if it doesn't exist there yet
       String dirtTextureName = "/Textures/dirt.jpg";
       File dirtTextureFile = new File(assetFolder+dirtTextureName);
       if (!dirtTextureFile.exists()) {
           BufferedImage bi = ImageToAwt.convert(defaultTexture.getImage(), false, true, 0);
           ImageIO.write(bi, "jpg", dirtTextureFile);
       }
       // give the first layer default texture
       Texture dirtTexture = manager.loadTexture(dirtTextureName);
       dirtTexture.setWrap(WrapMode.Repeat);
       mat.setTexture("DiffuseMap", dirtTexture);
       mat.setFloat("DiffuseMap_0_scale", TerrainEditorController.DEFAULT_TEXTURE_SCALE);
       mat.setBoolean("WardIso", true);

       ((Node)terrain).setMaterial(mat);
       ((Node)terrain).setModelBound(new BoundingBox());
       ((Node)terrain).updateModelBound();
       ((Node)terrain).setLocalTranslation(0, 0, 0);
       ((Node)terrain).setLocalScale(1f, 1f, 1f);

       // add the lod control
       TerrainLodControl control = new TerrainLodControl(terrain, SceneApplication.getApplication().getCamera());
       control.setLodCalculator(new DistanceLodCalculator(patchSize, 2.7f));
((Node)terrain).addControl(control);

       parent.attachChild((Node)terrain);

       //setNeedsSave(true);
       //addSpatialUndo(parent, (Node)terrain, jmeNodeParent);
       
       return (Spatial)terrain;
   }
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:76,代码来源:AddTerrainAction.java


注:本文中的jme3tools.converters.ImageToAwt.convert方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。