我正在使用socket.io为Javascript开发iPhone游戏服务器。服务器的目的是使用玩家路径绘制屏幕外的位图,以检查该路径是否已绘制。简而言之,所有图形只会显示在客户端屏幕上。这是我发现的用于创建画布,然后在其中查找像素颜色的代码。但是我没有html代码,因为它仅使用Javascript制作。那么,这些代码是否可以在仅Javascript程序中工作?如果没有,我该怎么做但结果相同?
编辑:我正在使用socket.io与node.js
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
// Make sure to set the size, otherwise its zero
canvas.width = 100;
canvas.height = 100;
// Draw to the offscreen canvas
context.fillStyle = "#0000ff";
context.fillRect(0,0,50,50);
context.fillStyle = "#ff9900";
context.arc(50,50,25,50,0,Math.PI*2);
context.fill();
// document.body.appendChild(canvas)
// To preview the canvas
var imgData = context.getImageData(0, 0, canvas.height, canvas.width);
var offset = 90*canvas.width+50*4
console.log(imgData.data[offset]);
console.log(imgData.data[offset+1]);
console.log(imgData.data[offset+2]);
console.log(imgData.data[offset+3]);
Run Code Online (Sandbox Code Playgroud) 这是我开始的教程.
基本上,我上传了一个图像,我想在自定义图像查看器中显示它.
我已经调整了我的php.ini,接受大量上传.
memory_limit = 128M
post_max_size = 1G
file_uploads = On
upload_max_filesize = 1G
max_file_uploads = 20
Run Code Online (Sandbox Code Playgroud)
这是我从logcat获得的错误
03-15 01:06:36.843:W/OpenGLRenderer(14403):位图太大而无法上传到纹理中(5312x2988,max = 4096x4096)
好的,问题是,当我尝试显示6M,8M,9M或12MEGAPIXEL的图片时,一切都很好.当我尝试显示16Megapixels照片时,它不会显示.
好的,但教程中的图像查看器显示图像.但我正在使用不同的类来显示图像.图像查看器似乎显示了您的SdCard图像.FeedImageView允许您显示保存在服务器上的图片.
public class FeedImageView extends ImageView {
public interface ResponseObserver {
public void onError();
public void onSuccess();
}
private ResponseObserver mObserver;
public void setResponseObserver(ResponseObserver observer) {
mObserver = observer;
}
/**
* The URL of the network image to load
*/
private String mUrl;
/**
* Resource ID of the image to be used as …Run Code Online (Sandbox Code Playgroud) private void changePicture(int stageIndex){
try{
iv=(ImageView) findViewById(R.id.imageView2);
Picture picture=new Picture();
String v =picture.getPicFileName();
InputStream ims = getAssets().open(v);
Drawable d = Drawable.createFromStream(ims, null);
iv.setImageDrawable(d);
}catch(IOException ex){
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从/asset文件夹中加载图像列表,所以我编写了此函数,但是它不起作用。有人能帮我吗?
我正在编写一个C应用程序,并在我的代码中调用了构造函数GdipCreateBitmapFromHBITMAP。
我知道不应从C调用构造函数,但我在这里使用了“ hack”“ 如何获取屏幕截图并将其保存为Windows上的JPEG? ”
我不确定如何释放在调用期间分配的资源GdipCreateBitmapFromHBITMAP。
我尝试在文档中寻求帮助,但一无所获。
ULONG *pBitmap = NULL;
lGdipCreateBitmapFromHBITMAP = (pGdipCreateBitmapFromHBITMAP)GetProcAddress(hModuleThread, "GdipCreateBitmapFromHBITMAP");
lGdipCreateBitmapFromHBITMAP(hBmp, NULL, &pBitmap);
Run Code Online (Sandbox Code Playgroud)
我该如何释放pBitmap?
非常感谢。
我一直试图将位图设置为MP3的封面艺术,但我似乎无法让它工作.它没有抛出任何错误,但是当我播放MP3时,位图没有显示.
这就是我目前拥有的:
TagLib.File f = TagLib.File.Create("song.mp3");
Image currentImage = getAlbumArt(result.passedAlbumID);
Picture pic = new Picture();
pic.Type = PictureType.FrontCover;
pic.MimeType = System.Net.Mime.MediaTypeNames.Image.Jpeg;
pic.Description = "Cover";
MemoryStream ms = new MemoryStream();
currentImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
ms.Position = 0;
pic.Data = ByteVector.FromStream(ms);
f.Tag.Pictures = new IPicture[1] { pic };
pictureBox1.Image = currentImage; //testing the image is correct
f.Save();
ms.Close();
Run Code Online (Sandbox Code Playgroud) 我想做一些我认为相当简单的事情,但由于我是winapi的新手,我发现了很多问题.基本上我有一个HDC(我从一个加载的位图BitBlitting),我正在绘制一个矩形.然后我想将HDC BitBlt放到一个新的HBITMAP对象上,但唉现在无济于事.
这是我的代码,我一直试图开始工作几个小时
BITMAPINFO info;
Bitmap *tempbmp = Bitmap::FromFile(L"C:\\Users\\abelajc\\Pictures\\BackgroundImage.png", false);
HBITMAP loadedbackground;
tempbmp->GetHBITMAP(NULL, &loadedbackground);
HBRUSH hRed = CreateSolidBrush(RGB(255, 0, 0));
HDC pDC = GetDC(0);
HDC TmpDC = CreateCompatibleDC(pDC); //main DC on which we will paint on
HDC dcBmp = CreateCompatibleDC(TmpDC); //DC for the loadedbackground HBitmap
HGDIOBJ TmpObj2 = SelectObject(dcBmp , tempbmp); //Selecting Bitmap in DC
BitBlt(TmpDC, 0, 0, 512, 512, dcBmp, 0, 0, SRCCOPY);
SelectObject(dcBmp, TmpObj2); //Deselecting Bitmap from DC
DeleteDC(dcBmp);
RECT rectangle;
SetRect(&rectangle, 5, 5, 20, 20);
FillRect(TmpDC, &rectangle, …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,用户可以在屏幕上移动他的图像,然后保存它.问题是在活动开始时将Bitmap定位在ImageView中.
这是XML:
<RelativeLayout
android:id="@+id/image_content_holder"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/top_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:scaleType="matrix"
android:gravity="center|center_vertical"
android:layout_gravity="center|center_vertical"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我正在使用onTouch移动ImageView(好吧,不是ImageView,但它的矩阵),它运行良好.
@Override
public boolean onTouch(View v, MotionEvent event)
{
ImageView view = (ImageView) v;
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
mode = DRAG;
start.set((int) event.getX(), (int) event.getY());
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
break;
case MotionEvent.ACTION_MOVE:
if (mode == DRAG)
{
matrix.set(savedMatrix);
matrix.postTranslate(event.getX() - start.x, event.getY() - start.y);
}
break;
}
view.setImageMatrix(matrix);
return true;
}
Run Code Online (Sandbox Code Playgroud)
问题是Bitmap在Activity开始时的位置.它在Top | …
这里有新的Android程序员.
我正在尝试在Android上将.png图像显示为位图.我能够显示转换后的图像的唯一方法是使用扩展的自定义类View.但是,我的图像太大,无法完全显示在屏幕上,我希望能够滚动它.但是当我定义一个ScrollView并将Canvas其Bitmap放入其中时,我得到一个空白屏幕.我没有运气设置布局文件,所以这一切都在Activity类中完成.
这是创建活动的位置:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ScrollView scroll = new ScrollView(this);
scroll.addView(new CustomView(this));
setContentView(scroll);
}
Run Code Online (Sandbox Code Playgroud)
这是我的CustomView类:
private class CustomView extends View{
public CustomView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas){
Bitmap bitmapMap = BitmapFactory.decodeResource(getResources(),R.drawable.resourceimage);
canvas.drawBitmap(bitmapMap,0,0,null);
this.setWillNotDraw(false);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在我的Activity中替换这行代码:setContentView(scroll)
使用这一行:setContentView(new CustomView(this)),我可以看到图像,尽管不是整个图像.那么,有没有办法在布局文件中设置它呢?或者有什么我想念的东西我需要在ScrollView课堂上宣布?
编辑:我不想使用ImageView,因为我想在特定位置更改图像,使用位图似乎是通过x和y坐标实现这一目标的最简单方法.
我在过去两天尝试了很多不同的解决方案,但似乎找不到最好的方法.
我想要的是:
1. Show image
2. Enable drawing red lines on image
3. Save image with lines
Run Code Online (Sandbox Code Playgroud)
我已经尝试过Win2D,WriteableBitmapEx,InkCanvas,普通的Canvas和Lumia Imaging SDK,但是在工作解决方案上没有运气.我很有可能做错了,因为所有这些解决方案对我都不起作用.我似乎无法找到任何与UWP合作的好例子.有人知道一个很好的方法吗?
编辑:我正在用C#开发
谁能帮我。我不明白如何将BitmapImage或IRandomAccessStream转换为字节数组。我尝试:
foreach (StorageFile file in files)
{
BitmapImage src = new BitmapImage();
using (IRandomAccessStream stream = await file.OpenReadAsync())
{
await src.SetSourceAsync(stream);
WriteableBitmap bitMap = new WriteableBitmap(src.PixelWidth, src.PixelHeight);
await bitMap.SetSourceAsync(stream);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有WriteableBitmap并尝试以下方法:
private byte[] ImageToByeArray(WriteableBitmap wbm)
{
using (Stream stream = wbm.PixelBuffer.AsStream())
using (MemoryStream memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用;(