In this paper, we propose a new structure-preserving algorithm for computing the singular value decomposition of a quaternion matrix $A$. We first define a quaternion-type matrix and prove that the multiplication of two quaternion-type matrices still be a quaternion-type matrix. Thus, utilizing this fact, we conduct a sequence of quaternion-type unitary transformations on a half of the elements of the complex adjoint matrix $\chi_A$ of $A$ instead of on the whole $\chi_A$. Then, we recover the resulting matrix with the help of the special structures. Compared with direct performing on the complex adjoint matrix, our algorithm needs only half of the computation and storage. This method also provides a novel proof for the existence of the singular value decomposition of a quaternion matrix. Moreover, numerical experiments are given to demonstrate the validity of our approach.