标签: bitmap

在python中对实现ImageDraw的方法进行单元测试

我目前正在尝试使用 pytest 模块为我正在处理的项目创建单元测试。我正在尝试测试基于一组像素绘制椭圆的“add_point”方法。我想要做的是检查“绘制”以确保已成功创建椭圆。不幸的是,我不知道如何解决这个问题,所以任何帮助将不胜感激。到目前为止,这是我的代码:

(A) TheSlicePreviewMaker.py

import os, Image, ImageDraw, ImageFont
from json_importer import json_importer

class SlicePreviewer(object):
    def __init__(self):
        self.screen_size = (470, 470)
        self.background_colour = (86,0,255)
        self.platform_fill_colour = (100, 100, 100)
        self.platform_outline_colour = (0, 0, 0)
        self.platform_window = (0,0,469,469)
        self.point_colour = (0,0,255)
        self.config_object = json_importer("ConfigFile.txt")
        self.image = None

    def initialise_image(self):
        self.image = Image.new('RGB',self.screen_size,self.background_colour)
        draw = ImageDraw.Draw(self.image)
        draw.rectangle(self.platform_window,outline=self.platform_outline_colour,fill=self.platform_fill_colour)
        del draw

    def add_point(self, px, py):
        x1 = px - 1
        y1 = py - 1
        x2 = px + 1
        y2 = py …
Run Code Online (Sandbox Code Playgroud)

python unit-testing image bitmap pytest

2
推荐指数
1
解决办法
1258
查看次数

将位图保存到应用程序文件夹

当我的应用程序第一次启动时,它让用户选择个人资料图片。这可以通过拍摄照片或从图库中选择来完成。

用户获得图片后,必须将其保存在设备的内部存储中,并将在应用程序中用作用户的个人资料图片。

这个过程工作正常,用户获取图片,并在保存之前显示在图像视图中。但是要将图像保存在内部存储器中,我遇到了一些麻烦。我尝试了几种方法来做到这一点,其中大多数似乎都有效。但是当我尝试它们时,图片没有被保存,或者至少我没有找到保存它的文件夹。

我已经尝试过这3种方式:

第一的:

File directory = getDir("profile", Context.MODE_PRIVATE);
File mypath = new File(directory, "thumbnail.png");

FileOutputStream fos = null;
try {
    fos = new FileOutputStream(mypath);
    mybitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
    fos.close();
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

第二:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mybitmap.compress(Bitmap.CompressFormat.PNG, 90, bytes);

FileOutputStream fos = null;
try {
    fos = openFileOutput("thumbnail.png", Context.MODE_PRIVATE);
    fos.write(bytes.toByteArray());
    fos.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

第三:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mybitmap.compress(Bitmap.CompressFormat.PNG, 90, bytes); …
Run Code Online (Sandbox Code Playgroud)

android bitmap

2
推荐指数
1
解决办法
2万
查看次数

Android:如何将位图数组转换为 Int 数组?

我正在切割一些 int 数组的图像...

int[] imagenes_originales = new int[] {
    R.drawable.image1,
    R.drawable.image2,
    R.drawable.image3,
    R.drawable.image4
}

int[] new_images;

for (a = 0; a <= 3; a++) {
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imagenes_originales[a]);

    int x = bitmap.getWidth(), y = bitmap.getHeight();
    int escalax = getWindowManager().getDefaultDisplay().getWidth();

    Bitmap recorte = Bitmap.createBitmap(bitmap, 0, y / 2, escalax, 100);
}
Run Code Online (Sandbox Code Playgroud)

如何在我的new_images[]变量中转换位图图像?

arrays int android bitmap drawable

2
推荐指数
1
解决办法
9890
查看次数

Ghostscript + PDF:删除透明度、径向和轴向阴影

我有正在上传到ISSUU 的PDF 。

可以使用 FLASH 查看这些 PDF,但浏览器因 PDF 问题而崩溃。

ISSUU 诊断出 PDF 并检测到 PDF 在其页面上使用了透明度、径向和轴向阴影。他们建议我将它们转换为位图。不幸的是,他们不是 Ghostscript 的专家。

我需要使用 Ghostscript 重新渲染我的 PDF 以消除图像/页面上的透明度、径向和轴向阴影。

  1. 有人可以帮助我,哪个是 Ghostscript 尽可能简单地呈现我的 PDF 并使其在网络上轻松查看的正确命令?

  2. 也许按照ISSUU支持的建议显示如何转换为位图?

我尝试了以下但仍然无法解决我的问题:

  1. 优化 PDF 文件(使用 Ghostscript 或其他)

  2. http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/

pdf flash bitmap ghostscript issuu

2
推荐指数
1
解决办法
2325
查看次数

如何在 Android 中编辑和保存大位图?目前将其写成瓷砖,但将它们重新组合在一起很慢

我在 Android 上使用 renderscript 来编辑照片,目前由于 Android 上的纹理大小限制和内存限制,如果我尝试任何太大的东西,例如使用设备相机拍摄的照片,应用程序将崩溃。

我解决这个问题的第一个想法是使用 BitmapRegionDecoder 并将大照片平铺成可管理的部分,通过渲染脚本编辑它们并一次保存一个,然后使用 PNGJ 将它们拼接在一起 - 一个允许编写 PNG 的 PNG 解码和编码库图像分部分存入磁盘,因此我的内存中没有完整图像。

这工作正常,但将其拼接在一起需要相当长的时间 - 大约 1 分钟。

还有其他我应该考虑的解决方案吗?如果那里有解决方案,我可以更改为 JPEG,但我还没有找到。基本上我正在寻找 BitmapRegionDecoder 的另一面,一个 BitmapRegionEncoder。

为了清楚起见,我不想调整图像大小。

android bitmap renderscript

2
推荐指数
1
解决办法
1315
查看次数

如何在精确的像素位置绘制字符串

我尝试将 C# 中的字符串(单个字符)绘制到位图中的确切位置:

Bitmap bmp = new Bitmap(64, 64);
Graphics g = Graphics.FromImage(bmp);
g.DrawString("W", font1, new SolidBrush(myColor), new Point(32,32);
Run Code Online (Sandbox Code Playgroud)

单个字母周围有太多空白空间,我无法猜测绘制角色的“所需”位置,使其在最后的正确位置。

到现在为止,我已经有了字符的像素精确尺寸(查看单独呈现的位图中的位)。但是,如果我无法在确切位置(例如中心或右上角或....)绘制字符,则此信息是无用的。

是否有其他方法可以在 C# 中在位图上绘制文本?或者是否有任何转换方法可以转换 DrawString 需要的实际像素位置?

.net c# graphics bitmap drawstring

2
推荐指数
1
解决办法
1293
查看次数

如何从imageView Android获取位图的真实坐标(X,Y)

我没有什么问题。
我得到一个图像,转换为Bitmap并用这个Bitmap填充图像视图。

所以问题是,如何获取这个位图的真实坐标(X,Y)?
为了更好地说明,我附上了一张图片:
我拥有的
如图所示,例如我得到了一个自定义分辨率的图像,用户可以通过黄点制作透视图
所以我需要知道,如何从 ImageView 中获取位图的真实坐标。

我目前所做的(但这种方法不正确):
我从 imageView 中获取宽度/高度并使用此分辨率重新创建新位图。

Bitmap bt = Bitmap.CreateScaledBitmap(BitmapFactory.DecodeResource(Activity.Resources, Resource.Drawable.test),800,1420,false); //800 width 1420 height
                imgView.SetImageBitmap(bt);
Run Code Online (Sandbox Code Playgroud)

通过TouchListener 的实现(方法GetX() / GetY()),我得到了点的坐标(覆盖在位图上的黄色圆圈),问题是这些坐标不正确。

当我在 imageView 上通过 ScaleType.FitXY 拉伸位图时,它对我来说也很有趣(它可以获取位图的真实坐标)?

那么我怎样才能实现我的目标呢?

android bitmap coordinates imageview xamarin

2
推荐指数
1
解决办法
5472
查看次数

如何从位图区域获取多边形形状

所以 - 这是我很少会问“我该怎么做”的问题之一,我实际上什么也没尝试,因为我不知道从哪里开始。

这是我的问题。

我有一张照片,我在绿色屏幕上键入了它,然后变成了一个蒙版,其中我有一些透明的像素,其余的像素是黑色的。假设这个黑色形状是照片主体的上胸部和头部。

我知道如何找到所有的黑色像素,我可以很容易地找出哪些黑色像素与透明像素相邻,这样我就可以轻松画出黑色形状的轮廓,但这就是我没有想法的地方……我该如何转换它将轮廓转换为可用作多边形的连续点数组?

svg android bitmap shape polygons

2
推荐指数
1
解决办法
1576
查看次数

如何在c#中为位图设置宽度和高度?

我有一个图像,我想更改所述图像的宽度和高度。

(例如Width = 200 Height = 120,我想将其更改为Width = 30 Height = 50

这样做的最佳方法是什么?

在此处输入图片说明

c# resize image bitmap

2
推荐指数
1
解决办法
4283
查看次数

从图库中获取图像并转换为 base64 问题

抱歉问了一个愚蠢的问题。但它解决了我的问题。请帮助我在 stackoverflow 上尝试了所有代码并遵循其他教程,但它根本没有帮助。在相机上,但为什么它在 galary 上不起作用,我不知道请帮助我。;(

这是选择图像的代码

private void selectImage() {
        final CharSequence[] items = { "Take Photo", "Choose from Library",
                "Cancel" };

        AlertDialog.Builder builder = new AlertDialog.Builder(TestFragment.this);
        builder.setTitle("Add Photo!");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                boolean result= Utility.checkPermission(TestFragment.this);

                if (items[item].equals("Take Photo")) {
                    userChoosenTask ="Take Photo";
                    if(result)
                        cameraIntent();

                } else if (items[item].equals("Choose from Library")) {
                    userChoosenTask ="Choose from Library";
                    if(result)
                        galleryIntent();

                } else if (items[item].equals("Cancel")) {
                    dialog.dismiss();
                }
            }
        });
        builder.show();
    }
Run Code Online (Sandbox Code Playgroud)

在这之后

 private void …
Run Code Online (Sandbox Code Playgroud)

android bitmap android-gallery

2
推荐指数
1
解决办法
8752
查看次数