我知道我的问题听起来很基本,但我搜遍了整个地方,一无所获.这是我的代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
这是一个功能:
public override void afficher(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(squareImage, pos_x, pos_y, 50, 50);
}
Run Code Online (Sandbox Code Playgroud)
squareImage是与Drawing.Image对应的属性.pos_x和pos_y是自定义int32属性.
我想要的是在运行我的应用程序时看到图像...
我只是想弄清楚如何在画布上绘制图像。我遵循了有关W3学校的教程,但是当我自己尝试时,它似乎无法正常工作。我将下面的代码复制并粘贴到HTML文件中,并且图像从不加载到画布中。我将图片下载到同一目录中。我一直在四处询问,并上网查找,但似乎没人知道问题出在哪里。我正在使用chrome(版本29.0.1547.76 m)的更新版本。
<!DOCTYPE html>
<html>
<body>
<p>Image to use:</p>
<img id="scream" src="img_the_scream.jpg" alt="The Scream" width="220" height="277">
<p>Canvas:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
this.ctx.drawImage(img,10,10);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 猜猜帖子的标题可能需要编辑,但是现在我不知道问题出在哪里.我在这里和其他地方阅读了类似问题的页面和答案.One Stack Overflow答案特别接近,但我不明白.
我想要一个函数,在画布上以所需的坐标绘制多边形,并用从文件加载的一些背景图像填充它们(足够大,不需要平铺).三角形可以用于测试.显然我应该使用drawImage和clip,并为多边形赋予边框,我可以为剪辑和笔划重用相同的路径.显然我应该保持秩序
- define path
- save
- clip
- drawImage
- restore
- stroke.
Run Code Online (Sandbox Code Playgroud)
还可以在某处读取一次加载图像就足够了.(如果你想让我引用所有这些假设的来源,我会寻找我看到它们的位置.大部分都在Stack Overflow上)
HTML是空的
<body onload = "main ();"></body>
Run Code Online (Sandbox Code Playgroud)
第一种方法,假装浏览器将等待图片加载:
var ctx, img;
var image_path = 'bg.jpg';
function main () {
var CANVAS_SIZE = 600;
var view_field_cnv = document.createElement ('canvas');
view_field_cnv.width = CANVAS_SIZE;
view_field_cnv.height = CANVAS_SIZE;
view_field_cnv.style.border = "1px solid";
document.body.appendChild (view_field_cnv);
ctx = view_field_cnv.getContext ('2d');
img = document.createElement ('img');
img.src = image_path;
place_triangle (0, 0);
place_triangle (300, 300);
place_triangle (500, 500);
place_triangle (0, …Run Code Online (Sandbox Code Playgroud) 我正在制作一个重载TableLayoutPanel,它绘制了一些花哨的边框,但由于某种原因,调用Graphics::DrawImage没有按预期工作。当我拉伸它时,它似乎淡出我的 1x10 像素源图像:

这是进行渲染的函数:
void GTableLayoutPanel::RenderSides(Graphics^ g, array<Drawing::Image^>^ sideImages)
{
if( sideImages )
{
if( sideImages->Length < 4 )
{
throw gcnew System::ArgumentException(String::Format("Not enough images supplied to render sides (expected 4 but only got {0})", sideImages->Length));
}
int borderSize = sideImages[0]->Height;
g->DrawImage(sideImages[0], Rectangle(borderSize, 0, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[1], Rectangle(this->Width-borderSize, borderSize, borderSize, this->Height-borderSize*2));
g->DrawImage(sideImages[2], Rectangle(borderSize, this->Height-borderSize, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[3], Rectangle(0, borderSize, borderSize, this->Height-borderSize*2));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个程序有问题(你可以在www.energematrice6.com/gview2上看到它)
星系观察者在6个不同的层面上绘制星星.后面层工作正常(使用简单的笔划命令).前3个图层使用drawImage()功能获取保存的图像并将其绘制到画布(使用函数starGradDraw和starGradDraw2).
当程序首次执行并保存到对象变量(基本上只是缓冲区)时,这些图像由另一个函数创建.
一切都在我的家用电脑,笔记本电脑,我妻子的电脑,以及几乎所有其他机器上都可以正常测试(或者让朋友测试一下).
当我尝试在我的工作计算机上使用Firefox 10.0.2打开它时(我在家中使用的版本相同),前三层星星是空白的.我能想到的另一个不同之处是我的家用电脑都没有使用64位操作系统或特别是Windows 7.
其他一切似乎仍然在程序中正常工作,并且firebug没有弹出任何错误.它只是没有绘制图像(或暂停程序).我真的不确定下一步该尝试什么.
有任何想法吗?
(如果你愿意的话,我可以粘贴一些代码,但程序超过千行,我不确定问题出在哪里或者它只能在这台机器上出错.)
我一直在开发一款游戏,该游戏需要在每一帧中渲染和旋转数千个非常小的图像(20^20 px)。提供了示例片段。
我已经使用了我所知道的所有技巧来加快速度以提高帧速率,但我怀疑我还可以做其他事情来优化它。
目前的优化包括:
已尝试但示例中未出现:
//initial canvas and context
var canvas = document.getElementById('canvas');
canvas.width = 800;
canvas.height = 800;
var ctx = canvas.getContext('2d');
//create an image (I) to render
let myImage = new OffscreenCanvas(10,10);
let myImageCtx = myImage.getContext('2d');
myImageCtx.fillRect(0,2.5,10,5);
myImageCtx.fillRect(0,0,2.5,10);
myImageCtx.fillRect(7.5,0,2.5,10);
//animation
let animation = requestAnimationFrame(frame);
//fill an initial array of [n] object positions and angles
let myObjects = [];
for (let i = 0; i <1500; i++){ …Run Code Online (Sandbox Code Playgroud)当我尝试使用图形库C#在另一幅图像上绘制图像时,它会缩放较小的图像并覆盖第一个图像:
public Form1()
{
//InitializeComponent();
read_file();
InitializeComponent1();
SetStyle(ControlStyles.Opaque, true);
// theImage = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/tryImage.jpg");
theImage2 = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/1.jpg");
// theImage = new Bitmap(newImage);
theImage = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/tryImage.jpg");
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
//e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
//e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
//e.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.DrawImage(theImage, ClientRectangle);
// Create pen.
g.FillRectangle(new SolidBrush(Color.Red), 50, 50, 50, 50);
RectangleF recto = new System.Drawing.RectangleF(50, 50, 50, 50);
Pen blackPen = new Pen(Color.Black,1); …Run Code Online (Sandbox Code Playgroud) 我是 HTML5 和 canvas 元素的新手,在过去的几周里我一直在努力更好地理解它。Uncaught TypeError: Type error无论如何,当我尝试将红色方块从此代码http://jsfiddle.net/kmHZt/10/更改为此图像http://i.imgur.com/k73egsW.png时,我得到了。但当我尝试时,我总是明白这一点Uncaught TypeError: Type error。这是我目前的代码http://jsfiddle.net/cCDFs/。
如果您需要我更好地解释一些事情,请尽管询问。
我试图将图像文件“sticky.png”放入画布框中,但我得到的只是一块空白画布。谁能指出我做错了什么和/或给我有效的代码?
<canvas id="myCanvas" width="200" height="100"
style="border:1px solid #000000;">
</canvas>
<body>
<script>
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var sticky = new Image();
sticky.onload = function() {
context.drawImage(sticky, 0, 0);
sticky.src = "sticky.png";
};
</script>
</body>
Run Code Online (Sandbox Code Playgroud) 我是Windows API的新手。使用Winapi教程中提供的一些Windows示例代码:
Graphics.DrawImage(Image *,const Rect)方法
我正在寻找打开.jpg图像并将其绘制到我创建的新窗口中。问题是我不确定如何在VOID Example_DrawImage9(HDC hdc)现有窗口中使用该方法。我的第一个本能是case WM_PAINT在回调过程中调用它,并hdc从那里使用,但是图像不显示。我怎么知道正确hdc的供应?我应该在哪里调用该方法?
#include <windows.h>
#include "stdafx.h"
#include <objidl.h>
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment (lib,"Gdiplus.lib")
//*************************************************** added for gdiplus
HWND hEdit;
//************************************************how do I use this method with the window I have created below?
VOID Example_DrawImage9(HDC hdc){
Graphics graphics(hdc); // Create an Image object.
Image image(L"C:/Users/Me/Desktop/fuzz.jpg"); // Create a Pen object.
Pen pen(Color(255, 255, 0, 0), 2); // Draw the original source …Run Code Online (Sandbox Code Playgroud)