在我的 android 项目中,我从手机中的图像加载位图。然后我对其进行各种图像操作,例如裁剪、调整大小、编辑像素值。
但问题是位图的格式不是 ARGB_8888,所以它并没有真正存储 alpha 值。或者更确切地说,它始终将它们保持在 255。
如何加载 ARGB_8888 格式的位图?这是我加载和调整大小的代码。如何指定其中任何一种格式?
谢谢
private static Bitmap resize(Bitmap img, int newW, int newH) throws IOException {
Bitmap resizedImg = Bitmap.createScaledBitmap(img, newW, newH, false);
img.recycle();
Bitmap newresizedImg = resizedImg.copy(Bitmap.Config.ARGB_8888, true);
resizedImg.recycle();
Pixel initialPixel = Function.getPixel(0, 0, newresizedImg, null);
int a = initialPixel.getColor().getAlpha(); // -> 255
newresizedImg.setPixel(0, 0, Pixel.getTransparentColor().getRGB());
initialPixel = Function.getPixel(0, 0, newresizedImg, null);
int new_a = initialPixel.getColor().getAlpha(); // -> 255
return newresizedImg;
}
private static Bitmap getImage(String from) throws IOException {
File …Run Code Online (Sandbox Code Playgroud) 我正在尝试从数据库 sqlite 上的 ImageView 保存一个 Bitmat,但我做不到。
我保存字符串,但我不知道图像。
我的代码
BBDD 类
public class BBDD extends SQLiteOpenHelper
{
String create = "CREATE TABLE info(usuario TEXT, " +
"ma TEXT, " +
"ti TEXT, " +
"loc TEXT, " +
"lati TEXT, " +
"longi TEXT, " +
"obs TEXT," +
"date TEXT, " +
"time TEXT, " +
"in TEXT, " +
"imgone BLOB, " +
"imgtwo BLOB, " +
"imgthree BLOB, " +
"imgfour BLOB) ";
public BBDD (Context contexto, String …Run Code Online (Sandbox Code Playgroud) 我想drawTextToBitmap在位图图像上添加一个字符串。我有一个方法,这种方法在位图图像上工作成功将字符串放置在位图图像上。但我的位图图像非常小,像针标记图像。此函数根据位图高度和宽度设置字符串。我想放置字符串超过位图图像。所以请帮我解决问题。
我用来获取位图的以下方法:
public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) {
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap = BitmapFactory.decodeResource(resources, gResId);
android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
// set default bitmap config if none
if (bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
// resource bitmaps are imutable,
// so we need to convert it to mutable one
bitmap = bitmap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bitmap);
// new antialised Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
// …Run Code Online (Sandbox Code Playgroud) 我知道 HTML5 Canvas 采用 Bitmap 技术,在放大时对图像质量有自己的限制。
但是,如果客户端使用浏览器的缩放功能(例如在 chrome 上,客户使用 Ctrl + 鼠标滚动)放大页面,是否有任何解决方案可以保持图像质量?
我通过 android 开发实现了我的目标,如此链接从 Android 中的位图裁剪圆形区域所示,
但是我如何使用 libGDX 框架实现这一目标?我试图做到这一点,Pixmap但没有成功。
任何人都可以帮助我实现这一目标。
我想缩放保持纵横比的位图,但适合所需的尺寸。这个答案会缩放位图并保持纵横比,但会留下一些空白,除非图像是完美的正方形。我需要填写宽度和高度,就像FIT_XY一个scaleType属性的ImageView。
问题很简单。
public Bitmap bm = new Bitmap()
以下代码抛出错误,指出Bitmap() 在 Bitmap 中不是公开的;无法从外部包访问。问题是它是公开的(android.graphics):
public final class Bitmap implements Parcelable { .. }
我在谷歌上搜索了很多,当这个类(在我的例子中是位图)没有公开时,各种各样的问题都会出现。我不明白出了什么问题。是因为 Bitmap 类是最终的吗?那么我应该如何声明一个位图类型的变量呢?
任何提示将不胜感激。
已经尝试清理和重建项目。
Size我的应用程序中有一个400X400 的图片框。图片SizeMode框的 设置为Zoomed。我在图片框中加载了 700X446 的 png 图像。
我有以下问题,
尽管我沿着红色路径画了一条黑色直线,但实际上它是沿着加载的图像在透视之外显示的。
我该如何解决这个问题?
PS我只想在图像上绘制,而不是整个图片框。
源代码:
public partial class MainForm : Form
{
Bitmap _inputImage = null;
//Graphics _imageGraphics = null;
#region ctor
public MainForm()
{
InitializeComponent();
_inputImage = Bitmap.FromFile(@"E:\cracked.png") as Bitmap;
this.inputImagePictureBox.Image = _inputImage;
}
#endregion
#region Mouse Up and Down
Point _startPoint = Point.Empty;
private void left_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
_startPoint = e.Location;
Circle tempCircle = new Circle(_startPoint, 10);
Bitmap …Run Code Online (Sandbox Code Playgroud)