如何从mx:image组件复制或复制bitmapdata?
我需要在我的应用程序的多个屏幕中显示相同的图像,并且不希望多次下载图像.
我可以使用urlrequest将图像作为位图下载并复制,但我喜欢你可以设置图像组件的来源.
假设您在C#中具有以下结构:
struct Piece : IEquatable<Piece> {
public readonly int size;
public readonly bool[,] data;
public Piece(Piece p) {
size = p.size;
data = (bool[,])p.data.Clone();
}
public Piece(int s, bool[,] d) {
size = s;
if (d.GetLength(0) != s || d.GetLength(1) != s) throw new ArgumentException();
data = (bool[,])d.Clone();
}
public bool Equals(Piece other) {
if (size != other.size) return false;
return (data.Equals(other.data));
}
}
Run Code Online (Sandbox Code Playgroud)
这个想法是它代表一组sizex size位代表一个形状(一个位图,如果你愿意的话).
现在,并非所有可能的位组合都有效.我有一些要求:
size位总数.(这很简单,我已经实现了这个)所以,再次假设size==4,以下是好的:
..#.
..#.
.##. …Run Code Online (Sandbox Code Playgroud) 我将CGBitmapContextRef用于大型可变图像.比我在UIView.drawRect中绘制一个部分.这在iPhone 3GS上运行良好 - 17FPS.但在iPhone 4上调用subj方法非常慢 - 总FPS为1.5!
profiler说:在3GS上调用CGSBlendBGRA8888到RGBA8888,占总时间的23%.在4G相同的代码调用argb32_sample_RGBA32/argb32_image_mark需要~90%.哇!
位图的颜色空间是CGColorSpaceCreateDeviceRGB.并且创建标志是kCGImageAlphaPremultipliedLast.
我可以做些什么来提高iPhone 4的性能?有什么建议 ?
我正在尝试实现捏缩放并且它正在工作但是当我缩小然后再次放大时,图像的分辨率(位图)会降低.我知道这只是我的代码的正常行为,我想知道如何以正确的方式做到这一点.
这是相关代码:
Matrix matrix = new Matrix() ;
float scale = newDist / oldDist;
matrix.postScale(scale, scale, mid.x, mid.y);
int width = mutable.getWidth() ;
int height = mutable.getHeight() ;
mutable = Bitmap.createBitmap(mutable, 0, 0, width, height, matrix, false);
Run Code Online (Sandbox Code Playgroud) 我对Bitmap类有疑问.如果要在位图上设置大量像素,则可以使用该SetPixel方法,但速度非常慢.关于如何使用LockBits方法等加快速度,有很多文档,所以我创建了一个方法:SetFastPixel加快一点.
然而,我真的很困惑:为什么微软不会将SetPixel()的实现更改为更快的实现?换句话说,使用SetPixel而不是使用LockBits方法是否有优点?
通过利用Silverlight的位图缓存,我们能够解决高CPU使用率问题,如下所述:
我们将EnableGPUAcceleration参数添加到<object>标记.为了将CPU使用率降低到合理的水平,我们不得不将CacheMode ="BitmapCache"添加到整个应用程序的根可视网格中.所以我想知道在位图缓存上依赖这么多是不是有任何缺点.如果它总是有益的,我认为它将默认启用.
我发现这个类似的问题,AnthonyWJones给出了一个很好的答案:
所以一个缺点是它使用更多的视频RAM.我想这可能会使同时运行的其他图形密集型应用程序变得更糟.还有其他缺点吗?
如果显卡没有足够的视频RAM来缓存所有东西,我认为Silverlight会优雅地降级,并且只会使用更多的CPU周期来重新渲染UI.
谢谢你的帮助,
理查德
我有一个填充的 Shape,和一个与Shape的边界框宽度和高度相同的BitmapData.
我需要从BitmapData中剪切Shape(基本上将BitmapData绘制到形状上......)[如此:http://imgur.com/uwE5F.png ]
我使用相当hackish方法:
public static function cutPoly(img:BitmapData, s:Shape, bounds:Bounds):BitmapData {
var temp:BitmapData = new BitmapData(bounds.width, bounds.height, true);
Main.inst.stageQuality("low"); //hack to kill anti-aliasing
temp.draw(s,new Matrix());
Main.inst.stageQuality("high"); // end hack
//0xFF00FF00 is the color of the shape
makeColTrans(temp,0xFF00FF00); //makes the color transparent :P
//return temp;
img.draw(temp);
//img.draw(temp);
temp.dispose();
makeColTrans(img, 0xFFFFFFFF);
return img;
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法......一个不仅仅是一个黑客.
我想知道是否可以从路径中选择坐标以随时间绘制位图,例如,我有一个太阳图像,并且我希望随着时间的推移沿着弧形路径移动它.
有没有办法定义这样的路径,然后沿着它移动,这样我就不必在数学上计算它?
谢谢.
我想写入最好的控件中的文件或字符串,这应该通过逐位控制来实现.
例如,' 00101111 '(2Fx)应该写入String.我应该在这里使用哪一堂课?我必须使用字节来表示位吗?
在此处下载源代码:http://www.eyeClaxton.com/download/delphi/ColorSwap.zip
是的,我想把"大多数是蓝色"的东西转换成"大多数是绿色"的东西.
我想采用原始位图(浅蓝色)并将颜色(Pixel by Pixel)更改为红色,绿色,蓝色和灰色等效关系.为了了解我的意思,我已经包含了源代码和屏幕截图.任何帮助将不胜感激.如果需要更多信息,请随时询问.
如果您可以查看下面的代码,我有三个功能,我正在寻求帮助.功能"RGBToRed,RGBToGreen和RGBToRed"我似乎无法提出正确的公式.

unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TMainFrm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Panel2: TPanel;
Label2: TLabel;
Button1: TButton;
BeforeImage1: TImage;
AfterImage1: TImage;
RadioGroup1: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainFrm: TMainFrm;
implementation
{$R *.DFM}
function RGBToGray(RGBColor: TColor): TColor;
var
Gray: Byte;
begin
Gray := Round(
(0.90 * …Run Code Online (Sandbox Code Playgroud) bitmap ×10
android ×2
c# ×2
.net ×1
actionscript ×1
animation ×1
apache-flex ×1
area ×1
bit ×1
bitmapdata ×1
boolean ×1
caching ×1
colors ×1
copy ×1
delphi ×1
flash ×1
graphics ×1
image ×1
iphone ×1
java ×1
path ×1
performance ×1
pixel ×1
resize ×1
resolution ×1
silverlight ×1
string ×1
zoom ×1