本文整理了Java中java.awt.image.BufferedImage.getSubimage()
方法的一些代码示例,展示了BufferedImage.getSubimage()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BufferedImage.getSubimage()
方法的具体详情如下:
包路径:java.awt.image.BufferedImage
类名称:BufferedImage
方法名:getSubimage
[英]Returns a subimage defined by a specified rectangular region. The returned BufferedImage
shares the same data array as the original image.
[中]返回由指定矩形区域定义的子图像。返回的BufferedImage
与原始图像共享相同的数据数组。
代码示例来源:origin: plantuml/plantuml
private BufferedImage smaller(BufferedImage im) {
if (im == null) {
return null;
}
final int nb = 1;
return im.getSubimage(nb, nb, im.getWidth() - 2 * nb, im.getHeight() - 2 * nb);
}
代码示例来源:origin: plantuml/plantuml
@Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormatOption, long seed)
throws IOException {
final BufferedImage im = createImage();
final ImageData imageData = new ImageDataSimple(im.getWidth(), (int) maxYpos);
PngIO.write(im.getSubimage(0, 0, imageData.getWidth(), imageData.getHeight()), os, 96);
return imageData;
}
代码示例来源:origin: stackoverflow.com
final BufferedImage source = ImageIO.read(new File("<sourceDir>/1fby-6t-555d.png"));
int idx = 0;
for (int y = 0; y < source.getHeight(); y += 32) {
ImageIO.write(source.getSubimage(0, y, 32, 32), "png", new File("<sourceDir>/1fby-6t-555d_" + idx++ + ".png"));
}
代码示例来源:origin: ivan-vasilev/neuralnetworks
@Override
public void addAugmentedImages(List<BufferedImage> images)
{
int l = images.size();
for (int i = 0; i < l; i++)
{
BufferedImage im = images.get(i);
images.add(im.getSubimage(0, 0, cropX, cropY));
images.add(im.getSubimage(im.getWidth() - cropX, 0, cropX, cropY));
images.add(im.getSubimage(0, im.getHeight() - cropY, cropX, cropY));
images.add(im.getSubimage(im.getWidth() - cropX, im.getHeight() - cropY, cropX, cropY));
images.add(im.getSubimage((im.getWidth() - cropX) / 2, (im.getHeight() - cropY) / 2, cropX, cropY));
}
images.subList(0, l).clear();
}
代码示例来源:origin: galenframework/galen
@Override
public OcrResult findOcrText(BufferedImage image, Rect rect) throws ValidationErrorException {
if (rect.getRight() > image.getWidth() && rect.getBottom() > rect.getHeight()) {
throw new ValidationErrorException("Could not extract element image. Looks like it is located outside of screenshot area");
}
try {
BufferedImage croppedImage = image.getSubimage(rect.getLeft(), rect.getTop(), rect.getWidth(), rect.getHeight());
GoogleModel model = getGoogleModel(croppedImage);
if (model.responses != null && !model.responses.isEmpty()) {
String resultedText = model.responses.get(0).fullTextAnnotation.text;
if (resultedText == null) {
resultedText = "";
}
return new OcrResult(new String(resultedText.getBytes(Charset.forName("utf-8"))), rect);
} else {
throw new NullPointerException("Got empty result");
}
} catch (Exception e) {
throw new ValidationErrorException("Google vision API error: " + e.getMessage(), e);
}
}
代码示例来源:origin: songgeb/BDIndexSpider
private static ArrayList<BufferedImage> clipBDIndexImage(BufferedImage image) {
ArrayList<BufferedImage> images = new ArrayList<BufferedImage>();
int[] indices = getWidthForNumber(image, 0);
while (indices != null) {
int numberWidth = indices[1] - indices[0] + 1;
if (numberWidth > 10) {//宽度太小的是逗号,不需要保存该数据
BufferedImage subImage = image.getSubimage(indices[0], 0, numberWidth, image.getHeight());
images.add(subImage);
}
indices = getWidthForNumber(image, indices[1]+1);
}
return images;
}
代码示例来源:origin: libgdx/libgdx
BufferedImage srcImage = page.getSubimage(region.left, region.top, region.height, region.width);
splitImage = new BufferedImage(region.width, region.height, page.getType());
op.filter(srcImage, splitImage);
} else {
splitImage = page.getSubimage(region.left, region.top, region.width, region.height);
BufferedImage paddedImage = new BufferedImage(splitImage.getWidth() + padding * 2, splitImage.getHeight() + padding * 2,
page.getType());
Graphics2D g2 = paddedImage.createGraphics();
代码示例来源:origin: MrCrayfish/ModelCreator
private static ImageIcon createIcon(BufferedImage source)
{
source = source.getSubimage(0, 0, source.getWidth(), source.getWidth());
Image scaledImage = source.getScaledInstance(64, 64, java.awt.Image.SCALE_FAST);
return new ImageIcon(scaledImage);
}
代码示例来源:origin: oskopek/javaanpr
private BufferedImage cutLeftRight(BufferedImage origin, PlateHorizontalGraph graph) {
graph.applyProbabilityDistributor(new Graph.ProbabilityDistributor(0f, 0f, 2, 2));
List<Peak> peaks = graph.findPeak();
if (peaks.size() != 0) {
Peak p = peaks.get(0);
return origin.getSubimage(p.getLeft(), 0, p.getDiff(), getImage().getHeight());
}
return origin;
}
代码示例来源:origin: libgdx/libgdx
BufferedImage srcImage = page.getSubimage(region.left, region.top, region.height, region.width);
splitImage = new BufferedImage(region.width, region.height, page.getType());
op.filter(srcImage, splitImage);
} else {
splitImage = page.getSubimage(region.left, region.top, region.width, region.height);
BufferedImage paddedImage = new BufferedImage(splitImage.getWidth() + padding * 2, splitImage.getHeight() + padding * 2,
page.getType());
Graphics2D g2 = paddedImage.createGraphics();
代码示例来源:origin: stackoverflow.com
public static void takeScreenshot(String screenshotPathAndName, WebDriver driver) {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
int height = driver.manage().window().getSize().getHeight();
BufferedImage img = ImageIO.read(scrFile);
BufferedImage dest = img.getSubimage(0, 0, img.getWidth(), height);
ImageIO.write(dest, "png", scrFile);
FileUtils.copyFile(scrFile, new File(screenshotPathAndName));
} catch(Exception e) {
e.printStackTrace();
}
}
代码示例来源:origin: ivan-vasilev/neuralnetworks
@Override
public void addAugmentedImages(List<BufferedImage> images)
{
int l = images.size();
for (int i = 0; i < l; i++)
{
BufferedImage im = images.get(i);
for (int j = 0; j < crops; j++)
{
images.add(im.getSubimage(random.nextInt(im.getWidth() - cropX), random.nextInt(im.getHeight() - cropY), cropX, cropY));
}
}
images.subList(0, l).clear();
}
代码示例来源:origin: oskopek/javaanpr
private BufferedImage cutTopBottom(BufferedImage origin, PlateVerticalGraph graph) {
graph.applyProbabilityDistributor(new Graph.ProbabilityDistributor(0f, 0f, 2, 2));
Peak p = graph.findPeak(3).get(0);
return origin.getSubimage(0, p.getLeft(), getImage().getWidth(), p.getDiff());
}
代码示例来源:origin: ivan-vasilev/neuralnetworks
@Override
public void addAugmentedImages(List<BufferedImage> images)
{
int l = images.size();
for (int i = 0; i < l; i++)
{
BufferedImage source = images.get(i);
for (int x = 0; x <= source.getWidth() - width; x += strideX)
{
for (int y = 0; y <= source.getHeight() - height; y += strideY)
{
images.add(source.getSubimage(x, y, width, height));
}
}
}
images.subList(0, l).clear();
}
代码示例来源:origin: net.sourceforge.plantuml/plantuml
@Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormatOption)
throws IOException {
final BufferedImage im = createImage();
final ImageData imageData = new ImageDataSimple(im.getWidth(), (int) maxYpos);
PngIO.write(im.getSubimage(0, 0, imageData.getWidth(), imageData.getHeight()), os, 96);
return imageData;
}
代码示例来源:origin: shopizer-ecommerce/shopizer
public BufferedImage getCroppedImage() throws IOException {
//out if croppedArea == 0 or file is null
Rectangle goal = new Rectangle( (int)this.getCropAreaWidth(), (int) this.getCropAreaHeight());
//Then intersect it with the dimensions of your image:
Rectangle clip = goal.intersection(new Rectangle(originalFile.getWidth(), originalFile.getHeight()));
//Now, clip corresponds to the portion of bi that will fit within your goal. In this case 100 x50.
//Now get the subImage using the value of clip.
BufferedImage clippedImg = originalFile.getSubimage(clip.x, clip.y, clip.width, clip.height);
return clippedImg;
}
代码示例来源:origin: ivan-vasilev/neuralnetworks
@Override
public List<BufferedImage> getNextRawImages()
{
if (images == null)
{
images = new BufferedImage[properties.getImagesBulkSize()];
}
IntStream stream = IntStream.range(0, properties.getImagesBulkSize());
stream.forEach(i -> {
if (sourceImages.get(currentImage).getWidth() - width > currentX)
{
currentX++;
} else if (sourceImages.get(currentImage).getHeight() - height > currentY)
{
currentY++;
currentX = 0;
} else
{
currentImage = (currentImage + 1) % sourceImages.size();
currentY = currentX = 0;
}
images[i] = sourceImages.get(currentImage).getSubimage(currentX, currentY, width, height);
});
return Arrays.asList(images);
}
代码示例来源:origin: ivan-vasilev/neuralnetworks
switch (resizeType) {
case SMALLEST_DIMENSION_RECT:
if (input.getWidth() < input.getHeight())
targetHeight = (int) (input.getHeight() / ((float) input.getWidth()) * smallestDimension);
} else
targetWidth = (int) (input.getWidth() / ((float) input.getHeight()) * smallestDimension);
targetHeight = smallestDimension;
if (input.getWidth() < input.getHeight())
input = input.getSubimage(0, (input.getHeight() - input.getWidth()) / 2, input.getWidth(), input.getWidth());
} else
input = input.getSubimage((input.getWidth() - input.getHeight()) / 2, 0, input.getHeight(), input.getHeight());
代码示例来源:origin: JpressProjects/jpress
/**
* 剪切
*
* @param srcImageFile 原图
* @param destImageFile 存放的目标位置
* @param left 起始点:左
* @param top 起始点:上
* @param width 宽
* @param height 高
*/
public static void crop(String srcImageFile, String destImageFile, int left, int top, int width, int height) {
if (notImageExtName(srcImageFile)) {
throw new IllegalArgumentException("只支持如下几种图片格式:jpg、jpeg、png、bmp");
}
try {
BufferedImage bi = ImageIO.read(new File(srcImageFile));
width = Math.min(width, bi.getWidth());
height = Math.min(height, bi.getHeight());
if (width <= 0) width = bi.getWidth();
if (height <= 0) height = bi.getHeight();
left = Math.min(Math.max(0, left), bi.getWidth() - width);
top = Math.min(Math.max(0, top), bi.getHeight() - height);
BufferedImage subimage = bi.getSubimage(left, top, width, height);
BufferedImage resizeImage = resize(subimage, 200, 200);
save(resizeImage, destImageFile);
} catch (Exception e) {
log.error(e.toString(), e);
}
}
代码示例来源:origin: igniterealtime/Openfire
if ( avatar.getWidth() <= targetDimension && avatar.getHeight() <= targetDimension )
Log.debug( "Original image dimension ({}x{}) is within acceptable bounds ({}x{}). No need to resize.", new Object[] { avatar.getWidth(), avatar.getHeight(), targetDimension, targetDimension });
return null;
Log.debug( "Original image is " + avatar.getWidth() + "x" + avatar.getHeight() + " pixels" );
avatar = avatar.getSubimage( x, y, targetWidth, targetHeight );
内容来源于网络,如有侵权,请联系作者删除!