标签: bitmap

用于 MaskBlt 的光栅运算符

我正在尝试使用 GDI MaskBlt 命令绘制具有透明度的图像:http://msdn.microsoft.com/en-us/library/dd145047 (VS.85).aspx

我似乎在文档中找不到任何关于在明显的用例中使用什么光栅运算符的任何内容:一种MAKEROP4(SRCCOPY, DSTCOPY)- 掩码为 1 的位块传输,并在掩码为 0 的情况下保持目标不变。 SRCCOPY 是有效的 ROP ,但是我应该用什么来代替我的虚构DSTCOPY呢?

winapi gdi mask bitmap

0
推荐指数
1
解决办法
2175
查看次数

AlphaBlend 生成不正确的颜色

几十年来我一直设法避免使用 Windows GDI,现在我付出了代价。以下 C++ 代码不会产生正确的颜色。它只是应该对窗口进行白色填充,然后对单个位图进行 alpha 混合。所有 alpha 都是位图中每个像素的 alpha。

// Create a memory DC
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmMem = CreateCompatibleBitmap(hdc, cxWnd, cyWnd);
SelectObject(hdcMem, hbmMem);

// White-fill the BG
FillRect(hdcMem, &rectWnd, static_cast<HBRUSH>(GetStockObject(WHITE_BRUSH)));

// Alpha blend the bitmap into the memory DC
HDC hdcSrc = CreateCompatibleDC(hdcMem);
HBITMAP hbmOld = static_cast<HBITMAP>(SelectObject(hdcSrc, hbm));
BLENDFUNCTION bfn = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };
AlphaBlend(hdcMem, x, y, cxBmp, cyBmp, hdcSrc, 0, 0, cxBmp, cyBmp, bfn);
SelectObject(hdcSrc, hbmOld);
DeleteDC(hdcSrc);

// Blit the memory DC …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi alphablending bitmap

0
推荐指数
1
解决办法
1309
查看次数

如何使用 C# 在一张大(巨大)图像中合并许多 JPG 图像

我有一百张 JPG 图像,想将它们合并为一个大 JPG。为了实现这一点,我使用以下代码:

using (var combinedBitmap = new Bitmap(combinedWidth, combinedHeights)) {
    combinedBitmap.SetResolution(96, 96);
    using (var g = Graphics.FromImage(combinedBitmap))
    {
        g.Clear(Color.White);

        foreach (var imagePiece in imagePieces)
        {
            var imagePath = Path.Combine(slideFolderPath, imagePiece.FileName);

            using (var image = Image.FromFile(imagePath)) 
            {
                var x = columnXs[imagePiece.Column];
                var y = rowYs[imagePiece.Row];

                g.DrawImage(image, new Point(x, y));
             }
        }
    }

    combinedBitmap.Save(combinedImagePath, ImageFormat.Jpeg);
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,直到尺寸(combinedWidthcombinedHeights)超过窗帘阈值,就像这里所说的 /sf/answers/2042313381/

尺寸为 23170 x 23170 像素的合并 JPG 文件大约为 50MB — 不会太大而无法占用内存。

但是位图不能用更大的维度创建——只是因为错误的参数异常而中断。

有没有其他方法可以使用 C# 将 JPG 图像块合并到一个尺寸大于 23170 x …

c# gdi+ bitmap

0
推荐指数
1
解决办法
1468
查看次数

将位图转换为有效的 Uri

我正在开发一个 Android 应用程序,用户可以从图库中选择图像或从相机捕获图像。当用户从图库获取图像时,我获取图像 uri,然后将此 uri 以字符串形式传递给其他活动。然后在下一个活动中,我将该字符串转换为 uri,然后将 uri 转换为位图,并在 imageview 中设置图像位图。现在,当我从相机捕获图像时,我得到图像位图。现在我想将此位图转换为有效的 uri 并传递到下一个活动

    if(requestCode==GET_FROM_GALLERY && resultCode == Activity.RESULT_OK) {
            Uri selectedImage = data.getData();
            System.out.println("URLLL "+selectedImage);
            Log.v("PhotoActivity", "Captured image");

            //Create intent
            Intent intent = new Intent(MainActivity.this, FlagDisplayActivity.class);
            intent.putExtra("URI", selectedImage.toString());
            //Start Flag Display activity
            startActivity(intent);
            Log.v("PHOTO ACTIVITY", " uri: " + selectedImage);
        }
        if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK)
        {

            Bitmap photo = (Bitmap) data.getExtras().get("data");

            Intent intent = new Intent(MainActivity.this, FlagDisplayActivity.class);
            intent.putExtra("URI", photo);
            //Start Flag Display activity
            startActivity(intent);

}
Run Code Online (Sandbox Code Playgroud)

这就是我在下一个活动中获取 …

java android bitmap

0
推荐指数
1
解决办法
7570
查看次数

圆形图像文件

我执行此代码是为了从 firestore 获取图像并将其用作地图标记的图标。

final StorageReference storageReference =
FirebaseStorage().ref().child("ProfilePictures/" + widget.userId);
String avatarDownloadPath = await storageReference.getDownloadURL();
final File _avatar = await DefaultCacheManager().getSingleFile(avatarDownloadPath);
Uint8List __avatar = await _avatar.readAsBytes();
BitmapDescriptor avatar = BitmapDescriptor.fromBytes(__avatar);

setState(() {
  _markers.add(Marker(markerId: MarkerId("UserPosition"), position: userLocation, icon: avatar ));
});
Run Code Online (Sandbox Code Playgroud)

此代码有效,但我想将图像设置为圆形,但我不知道该怎么做...

如果你也知道如何在周围添加一个圆圈并像这样设置动画,我会非常满意:

在此处输入图片说明

(我没有找到更具有代表性的东西,但我只想要一个圆圈)

paint bitmap dart flutter uint8array

0
推荐指数
1
解决办法
669
查看次数

是否可以仅从二进制数中获取 ASCII 字体位图数组?

我正在寻找一种解决方案,我可以仅从二进制数生成 6*8 位图。

假设你得到的 charA是 binary 0b01000001。您是否可以从AC 中的字母创建 6*8 位图(只有 0 和 1 两种颜色)?

或者我是否需要像这样的字符集列表来查找位图的形状?

在此处输入图片说明

c bitmap char

0
推荐指数
1
解决办法
75
查看次数

在黑莓中将位图转换为base64字符串

我有一个需要发送到服务器的图像.有没有办法在黑莓中将位图(jpg)转换为base64字符串?

java base64 blackberry bitmap

-1
推荐指数
1
解决办法
1581
查看次数

Android:使用XML在彼此之上的两个视图

我想在屏幕上显示两个视图.一个是随机定位的点位图.我可以用setContentView(...)来显示它.我还有两个位图和一个textview,它们通过xml布局语言排列,然后使用setContentView(R.layout.activity_title);


DrawV.java !!!基本上我认为我有两个setContentViews(...)我想在同一时间显示.如果您想了解更多信息,请告诉我.


公共类DrawV扩展View {VARIABES ...

public DrawV(Context context){CREATE CIRCLES(CIRELE OBJECTS)STORING COORDINATES RANDOMLY CHOSEN ......

@Override protected void onDraw(画布画布){绘制这些圆圈作为BITMAPS ...屏幕现在随机覆盖了许多点}


GameActivity.java


公共类GameActivity扩展Activity {private DrawV drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    drawView = new DrawV(this);
     setContentView(R.layout.activity_title);    !!!SHOWS LAYOUT (HOPEFULLY TEXTVIEW, TWO BUTTONS, AND RANDOMLY POSITIONED DOTS (DOTS NEVER WORKS) WHICH IS OVERDONE BY DRAWVIEW...
     setContentView(drawView); !!!IF THIS STATEMENT IS SECOND IT RENDERS INTEAD OF THE PREVIOUS STATEMENT.  OTHERWISE activity_title shows.
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    DEFAULT CODE... …
Run Code Online (Sandbox Code Playgroud)

xml android views bitmap android-linearlayout

-1
推荐指数
1
解决办法
4396
查看次数

Bitmap 到 ImageSource 的快速转换

我在 WPF(c#) 中编程用于图像处理目的。什么是转换fastet方式BitmapImageSource

c# wpf bitmap image-processing imagesource

-1
推荐指数
1
解决办法
4923
查看次数

具有高分辨率位图的Graphics.DrawString == LARGE TEXT

我有一个创建大位图的应用程序,之后用户可以添加一些标签.只要基本位图是默认的96x96分辨率,一切都很好.例如,如果我将它提升到300,那么使用Graphics.DrawString应用的文本太大了 - 小尺寸的8或10字体显示就像是20.

一方面,鉴于分辨率增加,它是有道理的,但另一方面,你认为字体会扩展.当在300 vs 96 dpi位图上测量时,MeasureString返回更大的尺寸,这实际上不是我所期望的.

我尝试通过创建一个适当大小的小位图,打印到它,然后粘贴到主图像来欺骗它.但是当粘贴到高分辨率时,它会放大粘贴的图像.

我能想到的唯一另一件事是创建一个高分辨率的临时位图,打印到它,然后在粘贴到主图像之前缩小它.这似乎还有很长的路要走.是否有允许这样的合成或叠加类型设置?字体大小仅适用于96 dpi画布吗?

感谢任何提示/建议!

vb.net graphics gdi+ bitmap

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