GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Manipulação binária de arquivos/memória (Game Maker)

5 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por GameMakerTutoriais Qui 05 Jan 2012, 23:29

Essa questão das linhas brancas eu realmente não entendi. Ainda acho que é alguma treta de surfaces... Em todos as vezes aqui abriu normal.

A questão do exemplo.... Eu tava falando "bitmap de 12 bits" só pra especificar qual é qual, mas na família do bitmap mesmo não existem "bitmaps de 12 bits" Laughing , no fim a gente acabou criando nosso próprio arquivo de imagem, mesmo que tenha ficado meio tosco, mas não deixa de ser interessante... Very Happy

Aquele último exemplo que eu postei, pode jogar ele fora! Eu errei em um cálculo lá, mas já arrumei e fiz upload de novo. Agora sim a conversão tá nota 10! Um negócio legal é que reduzir pra 12 bits por pixel dá o mesmo resultado de posterizar a imagem no Photoshop usando 16 níveis! Nesse caso da posterização, o arquivo não vai reduzir o tamanho, mas o impacto de conversão das cores é exatamente igual ao esquema que a gente criou!

Agora a redução de cores tá ótima, olha só:

Nosso arquivo com 12 bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 12bits10

Arquivo bitmap real de 24 bits:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 24bits10

Nem dá pra notar diferença nas cores agora! Valeu!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por PedroX Sex 06 Jan 2012, 11:56

Caramba, ficou muito igual.
Nem dá para perceber diferenças.
Muito bom. Você criou um novo formato de imagem super leve (metade do peso).
Eu também vou tentar algo para resolver o problema das linhas brancas, o ideal seria outra pessoa baixar (de preferência com um pc não muito bom) e falar se acontece ou nao.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por GameMakerTutoriais Sex 06 Jan 2012, 12:47

Vamos ver se a gente consegue resolver esse problema das linhas. Very Happy

Bom, se caso a imagem ficar distorcida, é só mudar essa linha do código:

Código:
extrabyte := min(incup - bmpw, bmpw - incdown); // Múltiplo mais próximo

por essa:

Código:
extrabyte := max(incup - bmpw, bmpw - incdown); // Múltiplo mais próximo

(já refiz o upload com a correção)

Realmente a imagem fica mais leve, não é tão leve ainda, mas a gente tá manipulando um bitmap... Se a imagem usasse menos cores ainda daria pra reduzir cada pixel pra 3 bits ou até 2 bits. Valeu!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por PedroX Sex 06 Jan 2012, 15:39

Na hora que caiu a ficha eu percebi que o tamanho do arquivo externo é menor, mas a memória ram ocupada no jogo/programa é a mesma.

Será que, se for usado 9 bits / pixel, a qualidade vai ficar muito menor?

Meu pc tá demorando uns 2~3 segundos para carregar a imagem. Tá bem lento mesmo. O seu carrega em quanto tempo?

Até mais!


Última edição por Pedrø em Dom 29 Jul 2012, 13:10, editado 1 vez(es)

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por GameMakerTutoriais Sex 06 Jan 2012, 16:41

A memória que é usada é sempre a mesma, independente de tipo de arquivo, porque quando a imagem tá na memória, ela não tem "formato" (já foi decodificada), ela é só um mapa de bits.

A questão da demora para abrir é porque estamos usando o Game Maker, surface e lendo o arquivo byte a byte, por isso que demora mesmo. No meu PC leva uns 2 segundos.

A perda de qualidade é muito variada, porque depende muito do número de cores que a imagem usa:


Sem perda (24) e com pouca perda (12)
12 bits = 2^12 = 4096 cores

24 bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 24_bit10

12 Bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 12_bit10

As que sofrem perdas mais bruscas, e redução de tamanho (usando o nosso sistema do script, dividindo a o valor da cor, ficaria assim):
9 bits (3 bits por canal) = 2^9 = 512 cores
6 bits (2 bits por canal) = 2^6 = 64 cores
3 bits (1 bit por canal) - 2^3 = 8 cores

9 bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 9_bits10

6 bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 6_bits10

3 bits por pixel:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 3_bits10
surpreso

Essas aqui são as mesmas condições, porém com dithering ( http://pt.wikipedia.org/wiki/Dither ) feito no Photoshop. As que sofreram dither tem o mesmo tamanho de arquivo que as que não sofreram. É um algoritmo pra otimizar a redução de cores:

9 bits por pixel com dither:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 9_bits11

6 bits por pixel com dither:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 6_bits11

3 bits por pixel com dither:
Manipulação binária de arquivos/memória (Game Maker) - Página 2 3_bits11

Pra fazer o cálculo de quanto espaço cada uma ocupa é só fazer:
([altura] * [largura] * [bits por pixel])/8 = número de bytes que a imagem usa

Uma imagem 320x240, por exemplo...
24 bits = 230400 bytes = 225 KB
12 bits = 115200 bytes = 112 KB
9 bits = 86400 bytes = 84 KB
6 bits = 57600 bytes = 56 KB
3 bits = 28800 bytes = 28 KB

Esse dither eu não tenho ideia de como fazer em programação. Nunca peguei um algoritmo pra ver como é... Essas imagens aí eu fiz no Photoshop. Dá pra reduzir o número de cores no Photoshop como eu fiz e depois usar aquele esquema nosso em GML, aí funciona também. Mas o dithering programado no braço com certeza deve ser bem mais complicado!
Falou!



avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por theguitarmester Sáb 15 Dez 2012, 15:33

sei que o Tópico já tem um Tempo, mas o Usuário entrou ontem mesmo no Fórum, mostrando ainda estar ativo.

As Imagens que são feitas por seu Programa Simplesmente não funcionam, mas não é só isso, queria saber se você me saberia dizer porque se eu abrir uma Imagem 'digamos no Bloco de notas' e salvá-la, ela não irá abrir! não sei se é só no Meu computador, já tentei fazer um programa no GM que soltava arquivos, mas devido a esse problema de você abrir o arquivo e salvar e ele não abrir mais, parei com o Projeto.

Você tem idéia do que seja?
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por PedroX Sáb 15 Dez 2012, 15:53

As Imagens que são feitas por seu Programa Simplesmente não funcionam
Aqui funcionam.

mas não é só isso, queria saber se você me saberia dizer porque se eu abrir uma Imagem 'digamos no Bloco de notas' e salvá-la, ela não irá abrir! não sei se é só no Meu computador, já tentei fazer um programa no GM que soltava arquivos, mas devido a esse problema de você abrir o arquivo e salvar e ele não abrir mais, parei com o Projeto.
O problema é que o Bloco de Notas não lê bytes. Se você quiser editar uma imagem modificando seus bytes, você precisa de um editor apropriado. Assim quando você salvar, ele vai escrever todos os bytes corretamente.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por Pit Bull Sáb 15 Dez 2012, 17:50

PedroX escreveu:
As Imagens que são feitas por seu Programa Simplesmente não funcionam
Aqui funcionam.

mas não é só isso, queria saber se você me saberia dizer porque se eu abrir uma Imagem 'digamos no Bloco de notas' e salvá-la, ela não irá abrir! não sei se é só no Meu computador, já tentei fazer um programa no GM que soltava arquivos, mas devido a esse problema de você abrir o arquivo e salvar e ele não abrir mais, parei com o Projeto.
O problema é que o Bloco de Notas não lê bytes. Se você quiser editar uma imagem modificando seus bytes, você precisa de um editor apropriado. Assim quando você salvar, ele vai escrever todos os bytes corretamente.

Até mais!

O bloco de notas só lê os bytes correspondentes a tabela ASCII, os que ele não reconhece coloca um caractere especial ou um espaço.

Quando você abri uma imagem no bloco de notas e salva, o blocos de notas salva como documento de texto e não mais como imagem.
Pit Bull
Pit Bull

Data de inscrição : 31/08/2010
Reputação : 16
Número de Mensagens : 646
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • C#
  • Outros


https://discord.gg/ZPM2d6q

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por GameMakerTutoriais Seg 17 Dez 2012, 15:09

Na verdade, sim e não. Dependendo do conteúdo do arquivo, tanto o bloco de notas como qualquer outro editor de texto plano podem salvar o conteúdo binário de um arquivo. O programa não "se importa" com o conteúdo de texto porque ele não tem cabeçalho nem campo apropriado, exceto quando o texto usar Unicode que, se não me engano, o cabeçalho começa com dois bytes predefinidos...

Como o valor do ASCII corresponde a cada valor de byte no arquivo, mesmo que o notepad abra, você ainda vai conseguir salvar o binário. Só que vai depender do conteúdo. Como o amigo falou aí em cima, tem alguns códigos que não são impressos na tela, mas eu não sei se o notepad coloca espaços no lugar.

Aqui o script também funciona. Se você quiser hospedar a imagem gerada aí e colocar o link pra download aqui, eu baixo e tento ver o que aconteceu. Se puder, coloque também a original.
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Manipulação binária de arquivos/memória (Game Maker) - Página 2 Empty Re: Manipulação binária de arquivos/memória (Game Maker)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos