截取屏幕的一块区域并且声称图片

在游戏开发过程中,我们经常遇到让我们分享截图的功能,这个时候首先要接入对应分享平台的SDK,然后在把截取的区域按照SDK相应的格式发送过去,达到相应的目的,接下来直接上代码,

// Call after WaitForEndOfFrame.
    private IEnumerator ShareToSocialNetworkShareOnly_Internal(RectTransform shareArea)
    {
        yield return new WaitForEndOfFrame();

        var reqInfo = new MSDKFriendReqInfo();
        reqInfo.Type = (int)FriendReqType.Friend_REQ_IMG;
        reqInfo.ImagePath = ProcessShareTexture(shareArea);
        //reqInfo.ThumbPath = appSmallIconPath;
        MSDKFriend.Share(reqInfo);
    }

private string ProcessShareTexture(RectTransform shareArea)
    {
        // Delete old image path.
        string shareImgPath = Path.Combine(Application.temporaryCachePath, "ShareImage.png");
        FileUtility.DeleteFileIfExist(shareImgPath);

        // Get the share screen size we need.
        Rect shareScreenRect = GetShareScreenSize(Camera.main, UIWindowManager.Instance.m_UICamera, shareArea);

        // Read screen pixels into share texture.
        Texture2D shareTexture = AcquireShareTexture((int)shareScreenRect.width, (int)shareScreenRect.height);
        shareTexture.ReadPixels(shareScreenRect, 0, 0, false);
        shareTexture.Apply();

        // Save share texture data.
        byte[] imageData = shareTexture.EncodeToPNG();
        File.WriteAllBytes(shareImgPath, imageData);
        Debug.Log("Save share image to: " + shareImgPath);

        return shareImgPath;
    }

先截图,然后把相应的截图在unity运行时保存在临时缓存区域,可以在运行游戏时预览效果

原文地址:https://www.cnblogs.com/qinshuaijun/p/11634539.html

时间: 2024-11-09 04:04:21

截取屏幕的一块区域并且声称图片的相关文章

根据size截取屏幕中间矩形区域

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)]; imageView.backgroundColor=[UIColor redColor]; //显示截取的图 imageVie

c++截取屏幕图片并保存(函数代码实现)

<strong> //获取桌面窗体的CDC CDC *pdeskdc = GetDesktopWindow()->GetDC(); CRect re; //获取窗体的大小 GetDesktopWindow()->GetClientRect(&re); CBitmap bmp; bmp.CreateCompatibleBitmap(pdeskdc , re.Width() , re.Height()); //创建一个兼容的内存画板 CDC memorydc; memorydc

VC将屏幕区域保存为图片[转]

VC将屏幕区域保存为图片,该代码为网上搜集整理. 1 int CDlldemoDlg::SaveBitmapToFile(HBITMAP hBitmap, LPSTR lpFileName) //hBitmap 为刚才的屏幕位图句柄 2 { //lpFileName 为位图文件名 3 WORD wBitCount; //位图中每个像素所占字节数 4 5 //定义调色板大小,位图中像素字节大小,位图文件大小,写入文件字节数 6 DWORD dwPaletteSize=0,dwBmBitsSize,

移动Web—CSS为Retina屏幕替换更高质量的图片

来源:互联网 作者:佚名 时间:12-24 10:37:45 [大 中 小] 点评:Retian似乎是屏幕显示的一种趋势,这也是Web设计师面对的一个新挑战;移动应用程序的设计师们已经学会了如何为Retina屏幕设备显示更好质量的图片,用来提高用户的体验;在本文中,你将看到如何使用CSS3技巧在Web应用中为Retina屏幕替换更高质量的图片 特别声明:此篇文章根据Stéphanie Walter 的英文文章<The Mobile Web: CSS Image Replacement for R

截取UIImage指定大小区域

截取UIImage指定大小区域 最近遇到这样的需求:从服务器获取到一张照片,只需要显示他的左半部分,或者中间部分等等.也就是截取UIImage指定大小区域. UIImage扩展 我的解决方案是对UIImage进行扩展.通过CGImageRef和CGImage完成截取,调用的方法是:CGImageCreateWithImageInRect.扩展类叫UIImage+Crop,具体代码如下: UIImage+Crop.h #import <UIKit/UIKit.h> typedef NS_ENUM

iOS开发&gt;学无止境 - 截取UIImage指定大小区域

最近遇到这样的需求:从服务器获取到一张照片,只需要显示他的左半部分,或者中间部分等等.也就是截取UIImage指定大小区域. UIImage扩展 我的解决方案是对UIImage进行扩展.通过CGImageRef和CGImage完成截取,调用的方法是:CGImageCreateWithImageInRect.扩展类叫UIImage+Crop,具体代码如下: UIImage+Crop.h #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, XYCr

Word中截取部分内容并保存为jpg图片的方法

private void button1_Click(object sender, EventArgs e) { var appWord = new Microsoft.Office.Interop.Word.Application(); var doc = new Microsoft.Office.Interop.Word.Document(); object oMissing = System.Reflection.Missing.Value;//这个是什么东西,我始终没搞明白-_- //打

游标-----内存中的一块区域,存放的是select 的结果

游标-----内存中的一块区域,存放的是select 的结果          游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区.这个区包含了已经处理完的行数.指向被分析语句的指针,整个区是查询语句返回的数据行集.游标就是指向上下文区句柄或指针. 两种游标: 一.显示游标(需要明确定义!) 显示游标被用于处理返回多行数据的SELECT 语句,游标名通过

C# 模拟PrintScreen 和 Alt+PrintScreen截取屏幕图片

keybd_event API 函数功能:该函数合成一次击键事件.系统可使用这种合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息,键盘驱动程序的中断处理程序调用keybd_event函数.在Windows NT中该函数己被使用SendInput来替代它. 函数原型:VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo): 参数: bVk:定义一个虚拟键码.键码值必须在1-254之间. bScan:定