-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Initial VTF support #6487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Initial VTF support #6487
Conversation
Can I provide arguments to save the function? Like compression mode, flags and etc? |
Like |
Yes, that's just what I needed, thanks! |
@radarhere Do I need to encode the image row-by-row or i can go like 4 rows at once because Bcn works in blocks of 4 by 4 pixels? |
No, you don't have to. A while ago, I attempted to implement DXT1 encoding. You might find that helpful - radarhere@363fab4 |
I see, your attempt is quite close to what I wrote, but I used a different way to get 2 main colors for the block. Can I reuse some of your code from 363fab4? |
Feel free |
@radarhere Can you please review my bcn encoder? |
Slightly confused - this PR is still a draft, but you'd like a review? Also, your lint problems could be resolved by just using the black formatting - REDxEYE#2. Is there a particular part of the styling that you dislike? |
I'm asking for a encoder code review, pr itself not even close to be ready :) |
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
#8807 has been merged with something close to my previous encoder. I'm not opposed to using a different approach to improve it, but in the tests I added, I have out = str(tmp_path / "temp.dds")
with Image.open(TEST_FILE_DXT1) as im:
im.convert("RGB").save(out, pixel_format="DXT1")
assert_image_similar_tofile(im, out, 1.84) If I run that against your encoder, I get https://github.com/radarhere/Pillow/actions/runs/13935788461/job/39003253301
If I save the outputs, comparison.zip, and zoom in to visually compare them,
Feel free to disagree. |
Ye, will update PR later |
Looking at https://developer.valvesoftware.com/wiki/VTF_(Valve_Texture_Format), it says
Do you mind if I remove support from this PR? |
Ye, i'm totally okay |
Co-authored-by: Andrew Murray <[email protected]>
|
||
|
||
@pytest.mark.parametrize( | ||
"etalon_path, file_path, expected_mode, epsilon", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does 'etalon' refer to?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
supposed to be like reference image or something :)
All of the test images you've included are able to be distributed as part of Pillow under our license, yes? |
Yes, these are test images i created myself, so they are non-copyrighted |
This pull request adds initial support for VTF image format
Changes proposed in this pull request: