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
1
Question by LKIM · Mar 10, 2011 at 01:01 AM · imagebytearraybitmapbyte

Bitmaps in unity

Since unity does not support System.Drawing.Bitmap, is there a way that I can bet the actual byte[] of an image that is read in?

I'm trying to get access to it through Unity's Texture2D, but that only gives me ConvertToPNG and not the actual bitmap bytes.

I've also tried to look at ImageMagickNET, but that just has a ToBitmap() image which returns a System.Drawing.Bitmap, which I can't use in unity.

Thanks, Liron

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

4 Replies

· Add your reply
  • Sort: 
avatar image
3

Answer by Statement · Mar 10, 2011 at 01:06 AM

Not sure what you mean by "the actual byte[]" but I assume you mean the pixel data, not the entire file data. While I don't know if this helps, you could try WWW.bytes (loading via WWW class). Another way to get the pixel colors is Texture2D.GetPixels but that will give you a Color array.

If you need the blunt file data, you can probably use System.IO.File.ReadAllBytes, but then you'd need to parse the file format yourself.

Comment
Add comment · 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
2

Answer by kennypu · Mar 10, 2011 at 01:07 AM

By getting the actual byte[] data, I'm assuming you're trying to get the color data from the image data. You can something similar by running a loop to go through every pixel on the image, and use the Texture2D.GetPixel() to get color data, and store it all into one array.

Comment
Add comment · Show 1 · 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 LKIM · Mar 10, 2011 at 05:49 PM 1
Share

But doing this will take too long, since I already should have the data once the image file has been loaded. This would be the value of using the .net Bitmap class so that I could read the file pixel data in a block and not in a silly for loop. Theoretically I could use System.IO.File.ReadAllBytes like described above, but that would basically involve re-implementing the exiting system.drawing.bitmap in my code which I would prefer to avoid for obvious reasons... Anyone know why Unity doesn't provide any more functionality than CompressToPNG?

avatar image
1

Answer by LKIM · Jan 12, 2012 at 03:58 PM

In unity 3.4, they provided a GetPixes32 which actually gives you the data as bytes.

Comment
Add comment · 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
0

Answer by normalmur · Dec 26, 2017 at 08:50 PM

Texture2D cursor;

byte[] bytes;

cursor = new Texture2D(10, 10);

bytes = cursor.GetRawTextureData(); //it is?

string path = "C:/games/ii.png";

System.IO.File.WriteAllBytes(path, cursor.EncodeToPNG()); // EncodeToPNG return byte[]

Comment
Add comment · 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

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

2 People are following this question.

avatar image avatar image

Related Questions

Downsize/compress image on upload to Firebase? 0 Answers

Converting a float to a byte[]? Not working 2 Answers

[SOLVED] Bad PKCS7 While encrypting a file 1 Answer

Debugging Byte? 2 Answers

Converting Vector3 to Byte[]? 4 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