| 67 | # Public API |
| 68 | # ------------------------------------------------------ |
| 69 | def compress(self, |
| 70 | image, |
| 71 | format=-1, |
| 72 | quality=BasisQuality.MAX, |
| 73 | effort=BasisEffort.DEFAULT, |
| 74 | flags=BasisFlags.KTX2_OUTPUT | BasisFlags.SRGB | BasisFlags.THREADED | BasisFlags.XUASTC_LDR_FULL_ZSTD): |
| 75 | |
| 76 | rgba_bytes, w, h, is_hdr = self._convert_input_to_rgba_bytes(image) |
| 77 | |
| 78 | # Auto-select format if user passed -1 |
| 79 | if format == -1: |
| 80 | if is_hdr: |
| 81 | format = BasisTexFormat.cUASTC_HDR_6x6 |
| 82 | else: |
| 83 | format = BasisTexFormat.cXUASTC_LDR_6x6 |
| 84 | |
| 85 | if self._native: |
| 86 | return self._compress_native(rgba_bytes, w, h, format, quality, effort, flags, is_hdr) |
| 87 | else: |
| 88 | return self._compress_wasm(rgba_bytes, w, h, format, quality, effort, flags, is_hdr) |
| 89 | |
| 90 | def compress_float32(self, arr, **kwargs): |
| 91 | if not isinstance(arr, np.ndarray) or arr.dtype != np.float32: |