Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by ina · Oct 27, 2014 at 11:47 PM · wwwscreenshotpngbytes

Accessing the bytes[] from Application.CaptureScreenshot

I'm trying to access the bytes[] from a screenshot in order to upload it via WWW... What's the right way to do this?

Is it possible to directly access the bytes from Application.CaptureScreenshot, without having to load it into a Texture2D?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Josh707 · Oct 28, 2014 at 03:52 AM

It just writes the file to disk, the only way to get the bytes would be to read the resulting file into a byte array through a stream, like File.ReadAllBytes.

You can also use Texture2D.ReadPixels to copy from the screen, it'd probably be best to not write the file to disk at all if you don't need to. There was an example of using it and uploading the result via WWW in the script reference so maybe give that a go instead.

 IEnumerator UploadPNG() {
     yield return new WaitForEndOfFrame();
     int width = Screen.width;
     int height = Screen.height;
     Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
     tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
     tex.Apply();
     byte[] bytes = tex.EncodeToPNG();
     Destroy(tex);
     WWWForm form = new WWWForm();
     form.AddField("frameCount", Time.frameCount.ToString());
     form.AddBinaryData("fileUpload", bytes);
     WWW w = new WWW("http://localhost/cgi-bin/env.cgi?post", form);
     yield return w;
     if (w.error != null)
         print(w.error);
     else
         print("Finished Uploading Screenshot");
 }

http://docs.unity3d.com/ScriptReference/Texture2D.ReadPixels.html

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image ina · Oct 28, 2014 at 04:26 AM 0
Share

The problem with ReadPixels is that it's not async... CaptureScreenshot works much faster.

avatar image ina · Oct 28, 2014 at 04:27 AM 0
Share

Is there a way to read files without using System.IO - File.ReadAllBytes seems to require that

avatar image VSZM · Oct 28, 2014 at 08:13 AM 1
Share

You can modify this code by making it a void method, and starting it on a separate thread. This way you don't block your main thread. If you do this each frame, you should consider using Pooling of threads.

@ina Saving a screenshot to the disk already requires System.IO under the hood, that is why it is slow. I do not recommend using it.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

28 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Question about screenshots and facebook integration 1 Answer

File.ReadAllBytes does not work on mac ? 1 Answer

Reliable way to download textures 1 Answer

Capture screenshot to texture, memory issue 1 Answer

Capturing 360 Image causes to darken the image and show ghosting and artifacts 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges