JavaScript执行失败 'drawImage'
好吧,我正在使用JavaScript帆布元素等创建游戏.我已经能够加载大量图像,但是在某些少数图像中,JavaScript回复了 之类的错误 uck offult typeError:未能在" canvasrenderingContext2d"上执行'drawimage':没有发现与提供的签名匹配的函数. 什么都没有意义,因为相同的代码在其他地方工作!?! 这是我在代码中的示例: board.drawImage(document.getElementById("player_explode"), this.x, this.y); 分别在对象方法的内部Player.die(). 有人知道为什么这种行为会发生吗?我对此感到非常沮丧... 这是一个 jsfiddle 展示,alonside所有代码. Player.die()位于line[242]. 上 解决方案 问题是我加载图像的方式,我应该一直在做: var image = new Im
2 2024-02-26
编程技术问答社区
如何将网址加载到图像中的DrawImage中,在Compose UI Android Jetpack中?
我可以使用 val image = +imageResource(R.drawable.header) 并使用DrawImage(image)从可绘制的资源加载图像, 但是如何将字符串URL加载到DrawImage(image)?我已经尝试使用Glide,但是它需要加载到ImageView中.同时,DrawImage(image)不从ImageView中获取输入. 谢谢. 解决方案 用1.0.x凝视实现它的最佳方法是使用线圈组合库. 添加您的build.gradle依赖关系 dependencies { implementation("io.coil-kt:coil-compose:1.3.1") } 然后只使用: Image( painter = rememberImagePainter("your url"), contentDescription = "My content description", ) 这将加
0 2024-02-15
编程技术问答社区
HTML5 Canvas drawImage with video source not working on Android
我正在尝试将Canvas的drawImage方法与视频源一起使用,但是它在Android 4.4.2中不起作用,使用Chrome浏览器进行了测试. 这是我的代码: $(function() { var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var video = document.getElementById('video'); var videoWidth; var videoHeight; var paused = false; canvas.addEventListener('click', function() { if (paused) { video.play(); } else { v
4 2024-01-31
编程技术问答社区
HTML5 Canvas drawImage with video source not working on Android
我正在尝试将Canvas的drawImage方法与视频源一起使用,但是它在Android 4.4.2中不起作用,使用Chrome浏览器进行了测试. 这是我的代码: $(function() { var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var video = document.getElementById('video'); var videoWidth; var videoHeight; var paused = false; canvas.addEventListener('click', function() { if (paused) { video.play(); } else { v
4 2024-01-31
编程技术问答社区
AlphaComposite 透明度与重绘叠加成黑色
所以我在另一个面板的顶部有一个图像,并且该图像是透明的,因此您可以看到下面的面板.我要做的是使用Repaver()淡化图像(用java.awt.graphics中的drawimage()方法绘制),直到它完全透明,以便您可以清楚地看到其下面的面板.截至目前,图像只是逐渐变成黑色而不是变成透明的纹理. 现在这是我的代码: PaintComponent方法: public void paintComponent(Graphics g) { super.paintComponent(g); float alpha = 1f-(.01f*(float)opcounter); Graphics2D g2d = (Graphics2D)g; g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_IN, alpha); g2d.drawImage(img, 0, 0, nu
0 2024-01-24
编程技术问答社区
用drawImage将加载的图像淡化到Canvas中
这个问题有关 crossfading Images 在画布中.我正在尝试做同样的事情,唯一的区别是我试图淡入运行时加载的图像. 这些图像被支撑着装载,但看不到褪色.这是由于加载图像而无法工作的吗?谢谢. html JS var toggle = true; var canvas = document.getElementById('bg1'); canvas.width = $(document).width(); canvas.height = $(document).height(); var ctx = canvas.getContext('2d'); var canvas2 = document
0 2024-01-17
编程技术问答社区
WinForms上的DrawImage()函数不能正确工作
当我尝试将此位图绘制为2像素宽时,我创建了一个位图1像素宽和256像素的高度: public void DrawImage(Image image,RectangleF rect) 由于每个位图列之间存在白色纤细条纹,因此无法正确绘制位图. 请参阅下面的简单代码 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics gr = e.Graphics; Bitmap bitmap = new Bitmap(1, 256); for (int y = 0; y
2 2024-01-06
编程技术问答社区
使用DrawImage方法出现空白屏幕
我必须使用使用下面的代码一切正常工作: BitmapImage myImage = new BitmapImage(); myImage.BeginInit(); myImage.UriSource = new Uri("image.png", UriKind.Relative); myImage.EndInit(); Rect area = new Rect(new Size(myImage.PixelWidth, myImage.PixelHeight)); DrawingVisual myVisual = new DrawingVisual(); using (DrawingContext context = myVisual.RenderOpen()) { context.DrawImage(myImage, area); } ,但前提是图像不超过2MB,即区域(myImage.PixelWidth x myImage.PixelHeight)不大于10000x10
0 2024-01-06
编程技术问答社区
使用Graphics.DrawImage()绘制具有透明度/Alpha通道的图像
我正在复制图像. (我的实际代码正在调整图像大小,但这与我的问题无关.)我的代码看起来像这样. Image src = ... using (Image dest = new Bitmap(width, height)) { Graphics graph = Graphics.FromImage(dest); graph.InterpolationMode = InterpolationMode.HighQualityBicubic; graph.DrawImage(src, 0, 0, width, height); dest.Save(filename, saveFormat); } 除非从带有透明胶片(例如GIF)或alpha通道(例如png)的图像加载src. 如何获取DrawImage()将透明胶片/alpha通道传输到新图像,然后在保存文件时保留它们? 解决方案 目前尚不清楚,您没有说很多.透明度的最大问题是您看不到它
22 2024-01-02
编程技术问答社区
如何在C#中从后面的代码中显示一个PictureBox
我知道我的问题听起来很基本,但是我到处搜索,什么也没找到. 这是我的代码: public MainWindow() { InitializeComponent(); Map newMap = new Map(); newMap.setMapStrategy(new SmallMapStrategy()); newMap.createMap(); System.Windows.Forms.PictureBox pictureBox1 = new System.Windows.Forms.PictureBox(); pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(newMap.grid[3].afficher); } 这是副本函数: public override void afficher(object sender, PaintEvent
8 2023-12-13
编程技术问答社区
ComboBox在选定的项目上绘制图像
我尝试在选择该项目时从Combobox中的图像列表中绘制图像. 我能够绘制图像,但是当onSelctedIndexChanged事件结束时,我丢失了图像. 我的组合已经具有DrawMode.OwnerDrawFixed. 我有一个ListImage对控件,名为Imagelist,带有10张图片. 对于我的简短示例,我只需要在我的成像派的位置1中绘制图像,这就是为什么我得到this.ImageList.Draw(g, 0, 0, **1**); 的原因 protected override void OnSelectedIndexChanged(EventArgs e) { base.OnSelectedIndexChanged(e); if (this.SelectedIndex > -1) { var g = this.CreateGraphics(); this.ImageList.Draw(g,
2 2023-12-09
编程技术问答社区
使用本地画布功能的Web Workers进行绘图
可以将通过getImageData获得的CanvasPixelArray发送到一个工作脚本,并让Worker脚本在其背景线程中操纵像素,并最终将操纵的像素数组返回. 但是,我正在使用本机帆布绘图功能,例如drawImage. drawImage呼叫当前正在阻止UI线程.这会导致按钮的慢速重新绘制,并在单击按钮时仅需命名一些缺点即可. (编辑:现在可以使用ctx.imageSmoothingEnabled = false来实现较小的改进,至少在Webkit上使用webkit前缀.) 我想使用网络工人将图形从主线程移动到背景线程中.但是,我似乎无法将画布或上下文发送给工人. 我确实找到了 MDN上的此通知: 注意:像往常一样,背景线程(包括工人)操纵了DOM.如果背景线程采取的操作需要对DOM进行更改,则应向创建者发布消息以完成此工作. ,但我想离开dom as-is;我只是想在画布元素上画东西.这是可能的,还是网络工人真的只允许计算而不是绘制? (或者也
2 2023-12-03
编程技术问答社区
使用GL.Readpixels的正确方法是什么?
我想从三分演示中获取Pixel-data. 据我所知,有两种方法可以进行: 1)在2D-Canvas中绘制WebGL-Canvas,并使用Context2D.Getimagedata这样的绘制: var canvas = document.createElement("canvas"); var ctx = canvas.getContext("2d"); ctx.drawImage(renderer.domElement,0,0); var data = ctx.getImageData(0,0,w,h).data; 2)直接将上下文3D与readpixels一起使用,例如: var ctx = renderer.domElement.getContext("webgl"); var data = new UInt8Array(w*h*4); ctx.readPixels(0, 0, w,h, ctx.RGBA, ctx.UNSIGNED_BYTE, data);
4 2023-11-30
编程技术问答社区
如何比GDI的DrawImage(Unscaled)提高性能?
在我的用户控件的油漆处理程序中,我迭代预定义的位图对象的集合,然后将其绘制到客户端区域: C#版本: private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; foreach (BitmapObj bmpObj in _bitmapObjCollection) { g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location); } } vb.net版本: Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint Dim g As Graphics = e.Graphics For Each bmpObj As Bitm
0 2023-11-14
编程技术问答社区
绘制未绘制
所以这基本上是我的代码工作的方式 class Main extends JFrame implements Runnable { public Main() { //init everything } public void start() { running = true; Thread thread = new Thread(this); thread.start(); } public void run() { while(running) { render(); } } public void render() { Image dbImage = createImage(width, height); Graphics dbg = dbImage.getGraphics(); draw(dbg);
4 2023-11-11
编程技术问答社区
在画布元素上绘制PNG-不显示透明度
我正在尝试使用绘制图来在画布元素上绘制半透明的png.但是,它将图像绘制为完全不透明的.当我查看正在加载的资源并将实际PNG加载到浏览器中时,它显示了透明度,但是当我在画布上绘制它时,它不会.有什么想法吗? 这是代码: drawing = new Image() drawing.src = "draw.png" context.drawImage(drawing,0,0); 解决方案 不要忘记将事件侦听器添加到图像的负载事件中.图像加载是背景中发生的事情,因此,当JavaScript解释器到达帆布时.绘图模具部分很可能是图像可能还没有加载,只是一个空图像对象,没有内容. . drawing = new Image(); drawing.src = "draw.png"; // can also be a remote URL e.g. http:// drawing.onload = function() { context.drawImage(dra
4 2023-10-25
编程技术问答社区
使用JPanel扩展类设置背景
在我的Main中,我想创建一个JFrame,然后我想创建BackgroundPanel,我想在JFrame>中添加它. 这是 main 类: public class Main { public static void main(String args[]) { Frame frame = new Frame(); BackgroundPanel back = new BackgroundPanel(); frame.getContentPane().add(back); frame.setSize(400, 287); frame.setVisible(true); } } 这是 backgroundPanel 类: import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracke
16 2023-10-11
编程技术问答社区
当我在JPanel上绘制背景图像时,它在Windows下的行为与在Linux下的不同
我正在开发一个工作程序(注意:我无法共享完整的代码,因为它在很大程度上受到保护的工作产品,但我将分享我能做的一切).在应用程序中,我有jpanels对其进行了背景图像.其中一些面板还附有鼠标侦听器,我的管理人员希望有一个视觉线索,可以单击面板以启动操作.为此,我用背景图像将透明的jpanel覆盖在Jpanel的顶部,并将MouseListener附加到其中,从而关注鼠标启动/退出的事件.当鼠标进入图像面板时,覆盖面板将从透明到半透明,然后在鼠标退出时返回. 在Linux下,这是完美的.在窗户下...这是一件好事,我秃顶,所以我不能撕开头发.似乎正在发生的事情是,当我移动鼠标时,正在发生某种形式的缓存,而Mouseenter事件正在导致鼠标在一秒钟以前绘制到框架中的任何东西.即,如果我将鼠标放在GUI上的附近按钮上,然后将鼠标放在面板上,我将看到该按钮出现在面板中,并带有周围的GUI. . 图像面板包含在不透明的jinternalframe中. 另一件事要注意,如果我在应用
26 2023-10-11
编程技术问答社区
如何在Jpanel中看到BufferedImage?
我正在建造一个乒乓球,但我遇到了一个错误. **我认为该错误是jpanel的原因. 我尝试了图像而不是bufferedimage. 我尝试了PaintComponent方法之外的抽图. 我在另一个面板上创建,然后在主台层中添加该面板. 菜单类 package me.pong; import javax.swing.*; public class TestMenu { JFrame frame; public void createFrame () { TestMain main = new TestMain (); frame = new JFrame("TEST"); frame.setSize (800, 450); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.getContentPane
16 2023-10-11
编程技术问答社区